11#
2- using SciMLOperators, LinearAlgebra
3- using Random
2+ using SciMLOperators
3+ using SciMLOperators: AbstractSciMLScalarOperator,
4+ ComposedScalarOperator,
5+ AddedScalarOperator,
6+ InvertedScalarOperator,
7+ IdentityOperator,
8+ AddedOperator,
9+ ScaledOperator
10+
11+ using LinearAlgebra, Random
412
513Random. seed! (0 )
614N = 8
@@ -38,31 +46,31 @@ K = 12
3846
3947 # Test that ScalarOperator's remain AbstractSciMLScalarOperator's under common ops
4048 β = α + α
41- @test β isa SciMLOperators . AddedScalarOperator
49+ @test β isa AddedScalarOperator
4250 @test β * u ≈ x * u + x * u
4351 @inferred convert (Float32, β)
4452 @test convert (Number, β) ≈ x + x
4553
4654 β = α * α
47- @test β isa SciMLOperators . ComposedScalarOperator
55+ @test β isa ComposedScalarOperator
4856 @test β * u ≈ x * x * u
4957 @inferred convert (Float32, β)
5058 @test convert (Number, β) ≈ x * x
5159
5260 β = inv (α)
53- @test β isa SciMLOperators . InvertedScalarOperator
61+ @test β isa InvertedScalarOperator
5462 @test β * u ≈ 1 / x * u
5563 @inferred convert (Float32, β)
5664 @test convert (Number, β) ≈ 1 / x
5765
5866 β = α * inv (α)
59- @test β isa SciMLOperators . ComposedScalarOperator
67+ @test β isa ComposedScalarOperator
6068 @test β * u ≈ u
6169 @inferred convert (Float32, β)
6270 @test convert (Number, β) ≈ true
6371
6472 β = α / α
65- @test β isa SciMLOperators . ComposedScalarOperator
73+ @test β isa ComposedScalarOperator
6674 @test β * u ≈ u
6775 @inferred convert (Float32, β)
6876 @test convert (Number, β) ≈ true
@@ -77,6 +85,14 @@ K = 12
7785 @test (α / op) * u ≈ (op \ α) * u ≈ α * (op \ u)
7886 @test (op / α) * u ≈ (α \ op) * u ≈ 1 / α * op * u
7987 end
88+
89+ # ensure composedscalaroperators doesn't nest
90+ α = ScalarOperator (rand ())
91+ L = α * (α * α) * α
92+ @test L isa ComposedScalarOperator
93+ for op in L. ops
94+ @test ! isa (op, ComposedScalarOperator)
95+ end
8096end
8197
8298@testset " ScalarOperator update test" begin
0 commit comments