@@ -755,6 +755,36 @@ function test_simplify_if_quadratic()
755755 return
756756end
757757
758+ function test_simplify_drops_zeros ()
759+ x, y = MOI. VariableIndex .(1 : 2 )
760+ f = MOI. ScalarNonlinearFunction (:/ , Any[1.0 * x* x, y])
761+ for F in (
762+ MOI. ScalarAffineFunction{Float64},
763+ MOI. ScalarQuadraticFunction{Float64},
764+ )
765+ g = MOI. ScalarNonlinearFunction (:+ , Any[zero (F), f])
766+ @test isapprox (MOI. Nonlinear. SymbolicAD. simplify (g), f)
767+ g = MOI. ScalarNonlinearFunction (:+ , Any[f, zero (F)])
768+ @test isapprox (MOI. Nonlinear. SymbolicAD. simplify (g), f)
769+ end
770+ return
771+ end
772+
773+ function test_simplify_drops_ones ()
774+ x, y = MOI. VariableIndex .(1 : 2 )
775+ f = MOI. ScalarNonlinearFunction (:/ , Any[1.0 * x* x, y])
776+ for F in (
777+ MOI. ScalarAffineFunction{Float64},
778+ MOI. ScalarQuadraticFunction{Float64},
779+ )
780+ g = MOI. ScalarNonlinearFunction (:* , Any[one (F), f])
781+ @test isapprox (MOI. Nonlinear. SymbolicAD. simplify (g), f)
782+ g = MOI. ScalarNonlinearFunction (:* , Any[f, one (F)])
783+ @test isapprox (MOI. Nonlinear. SymbolicAD. simplify (g), f)
784+ end
785+ return
786+ end
787+
758788end # module
759789
760790TestMathOptSymbolicAD. runtests ()
0 commit comments