From 20b6035d6070a83a8a05405fe5d66467f88c8a64 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Fri, 2 May 2025 10:03:37 -0400 Subject: [PATCH 1/2] tmp commit --- test/runtests.jl | 212 +++++++++++++++++++++++------------------------ 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 37c738eec9..d214e75f69 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -25,121 +25,121 @@ end @time begin if GROUP == "All" || GROUP == "InterfaceI" @testset "InterfaceI" begin - @safetestset "Linear Algebra Test" include("linalg.jl") - @safetestset "AbstractSystem Test" include("abstractsystem.jl") - @safetestset "Variable Scope Tests" include("variable_scope.jl") - @safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl") - @safetestset "Parsing Test" include("variable_parsing.jl") - @safetestset "Simplify Test" include("simplify.jl") - @safetestset "Direct Usage Test" include("direct.jl") - @safetestset "System Linearity Test" include("linearity.jl") - @safetestset "Input Output Test" include("input_output_handling.jl") - @safetestset "Clock Test" include("clock.jl") - @safetestset "ODESystem Test" include("odesystem.jl") - @safetestset "Dynamic Quantities Test" include("dq_units.jl") - @safetestset "Unitful Quantities Test" include("units.jl") - @safetestset "Mass Matrix Test" include("mass_matrix.jl") - @safetestset "Reduction Test" include("reduction.jl") - @safetestset "Split Parameters Test" include("split_parameters.jl") - @safetestset "StaticArrays Test" include("static_arrays.jl") - @safetestset "Components Test" include("components.jl") - @safetestset "Model Parsing Test" include("model_parsing.jl") - @safetestset "Error Handling" include("error_handling.jl") - @safetestset "StructuralTransformations" include("structural_transformation/runtests.jl") + # @safetestset "Linear Algebra Test" include("linalg.jl") + # @safetestset "AbstractSystem Test" include("abstractsystem.jl") + # @safetestset "Variable Scope Tests" include("variable_scope.jl") + # @safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl") + # @safetestset "Parsing Test" include("variable_parsing.jl") + # @safetestset "Simplify Test" include("simplify.jl") + # @safetestset "Direct Usage Test" include("direct.jl") + # @safetestset "System Linearity Test" include("linearity.jl") + # @safetestset "Input Output Test" include("input_output_handling.jl") + # @safetestset "Clock Test" include("clock.jl") + # @safetestset "ODESystem Test" include("odesystem.jl") + # @safetestset "Dynamic Quantities Test" include("dq_units.jl") + # @safetestset "Unitful Quantities Test" include("units.jl") + # @safetestset "Mass Matrix Test" include("mass_matrix.jl") + # @safetestset "Reduction Test" include("reduction.jl") + # @safetestset "Split Parameters Test" include("split_parameters.jl") + # @safetestset "StaticArrays Test" include("static_arrays.jl") + # @safetestset "Components Test" include("components.jl") + # @safetestset "Model Parsing Test" include("model_parsing.jl") + # @safetestset "Error Handling" include("error_handling.jl") + # @safetestset "StructuralTransformations" include("structural_transformation/runtests.jl") @safetestset "Basic transformations" include("basic_transformations.jl") - @safetestset "State Selection Test" include("state_selection.jl") - @safetestset "Symbolic Event Test" include("symbolic_events.jl") - @safetestset "Stream Connect Test" include("stream_connectors.jl") - @safetestset "Domain Connect Test" include("domain_connectors.jl") - @safetestset "Lowering Integration Test" include("lowering_solving.jl") - @safetestset "Dependency Graph Test" include("dep_graphs.jl") - @safetestset "Function Registration Test" include("function_registration.jl") - @safetestset "Precompiled Modules Test" include("precompile_test.jl") - @safetestset "DAE Jacobians Test" include("dae_jacobian.jl") - @safetestset "Jacobian Sparsity" include("jacobiansparsity.jl") - @safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl") - @safetestset "FuncAffect Test" include("funcaffect.jl") - @safetestset "Constants Test" include("constants.jl") - @safetestset "Parameter Dependency Test" include("parameter_dependencies.jl") - @safetestset "Equation Type Accessors Test" include("equation_type_accessors.jl") - @safetestset "System Accessor Functions Test" include("accessor_functions.jl") - @safetestset "Equations with complex values" include("complex.jl") + # @safetestset "State Selection Test" include("state_selection.jl") + # @safetestset "Symbolic Event Test" include("symbolic_events.jl") + # @safetestset "Stream Connect Test" include("stream_connectors.jl") + # @safetestset "Domain Connect Test" include("domain_connectors.jl") + # @safetestset "Lowering Integration Test" include("lowering_solving.jl") + # @safetestset "Dependency Graph Test" include("dep_graphs.jl") + # @safetestset "Function Registration Test" include("function_registration.jl") + # @safetestset "Precompiled Modules Test" include("precompile_test.jl") + # @safetestset "DAE Jacobians Test" include("dae_jacobian.jl") + # @safetestset "Jacobian Sparsity" include("jacobiansparsity.jl") + # @safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl") + # @safetestset "FuncAffect Test" include("funcaffect.jl") + # @safetestset "Constants Test" include("constants.jl") + # @safetestset "Parameter Dependency Test" include("parameter_dependencies.jl") + # @safetestset "Equation Type Accessors Test" include("equation_type_accessors.jl") + # @safetestset "System Accessor Functions Test" include("accessor_functions.jl") + # @safetestset "Equations with complex values" include("complex.jl") end end - if GROUP == "All" || GROUP == "Initialization" - @safetestset "Guess Propagation" include("guess_propagation.jl") - @safetestset "Hierarchical Initialization Equations" include("hierarchical_initialization_eqs.jl") - @safetestset "InitializationSystem Test" include("initializationsystem.jl") - @safetestset "Initial Values Test" include("initial_values.jl") - end + # if GROUP == "All" || GROUP == "Initialization" + # @safetestset "Guess Propagation" include("guess_propagation.jl") + # @safetestset "Hierarchical Initialization Equations" include("hierarchical_initialization_eqs.jl") + # @safetestset "InitializationSystem Test" include("initializationsystem.jl") + # @safetestset "Initial Values Test" include("initial_values.jl") + # end - if GROUP == "All" || GROUP == "InterfaceII" - @testset "InterfaceII" begin - @safetestset "Code Generation Test" include("code_generation.jl") - @safetestset "IndexCache Test" include("index_cache.jl") - @safetestset "Variable Utils Test" include("variable_utils.jl") - @safetestset "Variable Metadata Test" include("test_variable_metadata.jl") - @safetestset "OptimizationSystem Test" include("optimizationsystem.jl") - @safetestset "Discrete System" include("discrete_system.jl") - @safetestset "Implicit Discrete System" include("implicit_discrete_system.jl") - @safetestset "SteadyStateSystem Test" include("steadystatesystems.jl") - @safetestset "SDESystem Test" include("sdesystem.jl") - @safetestset "DDESystem Test" include("dde.jl") - @safetestset "NonlinearSystem Test" include("nonlinearsystem.jl") - @safetestset "SCCNonlinearProblem Test" include("scc_nonlinear_problem.jl") - @safetestset "PDE Construction Test" include("pdesystem.jl") - @safetestset "JumpSystem Test" include("jumpsystem.jl") - @safetestset "Optimal Control + Constraints Tests" include("optimal_control.jl") - @safetestset "print_tree" include("print_tree.jl") - @safetestset "Constraints Test" include("constraints.jl") - @safetestset "IfLifting Test" include("if_lifting.jl") - @safetestset "Analysis Points Test" include("analysis_points.jl") - @safetestset "Causal Variables Connection Test" include("causal_variables_connection.jl") - @safetestset "Debugging Test" include("debugging.jl") - @safetestset "Namespacing test" include("namespacing.jl") - @safetestset "Subsystem replacement" include("substitute_component.jl") - end - end + # if GROUP == "All" || GROUP == "InterfaceII" + # @testset "InterfaceII" begin + # @safetestset "Code Generation Test" include("code_generation.jl") + # @safetestset "IndexCache Test" include("index_cache.jl") + # @safetestset "Variable Utils Test" include("variable_utils.jl") + # @safetestset "Variable Metadata Test" include("test_variable_metadata.jl") + # @safetestset "OptimizationSystem Test" include("optimizationsystem.jl") + # @safetestset "Discrete System" include("discrete_system.jl") + # @safetestset "Implicit Discrete System" include("implicit_discrete_system.jl") + # @safetestset "SteadyStateSystem Test" include("steadystatesystems.jl") + # @safetestset "SDESystem Test" include("sdesystem.jl") + # @safetestset "DDESystem Test" include("dde.jl") + # @safetestset "NonlinearSystem Test" include("nonlinearsystem.jl") + # @safetestset "SCCNonlinearProblem Test" include("scc_nonlinear_problem.jl") + # @safetestset "PDE Construction Test" include("pdesystem.jl") + # @safetestset "JumpSystem Test" include("jumpsystem.jl") + # @safetestset "Optimal Control + Constraints Tests" include("optimal_control.jl") + # @safetestset "print_tree" include("print_tree.jl") + # @safetestset "Constraints Test" include("constraints.jl") + # @safetestset "IfLifting Test" include("if_lifting.jl") + # @safetestset "Analysis Points Test" include("analysis_points.jl") + # @safetestset "Causal Variables Connection Test" include("causal_variables_connection.jl") + # @safetestset "Debugging Test" include("debugging.jl") + # @safetestset "Namespacing test" include("namespacing.jl") + # @safetestset "Subsystem replacement" include("substitute_component.jl") + # end + # end - if GROUP == "All" || GROUP == "SymbolicIndexingInterface" - @safetestset "SymbolicIndexingInterface test" include("symbolic_indexing_interface.jl") - @safetestset "SciML Problem Input Test" include("sciml_problem_inputs.jl") - @safetestset "MTKParameters Test" include("mtkparameters.jl") - end + # if GROUP == "All" || GROUP == "SymbolicIndexingInterface" + # @safetestset "SymbolicIndexingInterface test" include("symbolic_indexing_interface.jl") + # @safetestset "SciML Problem Input Test" include("sciml_problem_inputs.jl") + # @safetestset "MTKParameters Test" include("mtkparameters.jl") + # end - if GROUP == "All" || GROUP == "Extended" - @safetestset "Test Big System Usage" include("bigsystem.jl") - println("C compilation test requires gcc available in the path!") - @safetestset "C Compilation Test" include("ccompile.jl") - @testset "Distributed Test" include("distributed.jl") - @testset "Serialization" include("serialization.jl") - end + # if GROUP == "All" || GROUP == "Extended" + # @safetestset "Test Big System Usage" include("bigsystem.jl") + # println("C compilation test requires gcc available in the path!") + # @safetestset "C Compilation Test" include("ccompile.jl") + # @testset "Distributed Test" include("distributed.jl") + # @testset "Serialization" include("serialization.jl") + # end - if GROUP == "All" || GROUP == "RegressionI" - @safetestset "Latexify recipes Test" include("latexify.jl") - end + # if GROUP == "All" || GROUP == "RegressionI" + # @safetestset "Latexify recipes Test" include("latexify.jl") + # end - if GROUP == "All" || GROUP == "Downstream" - activate_downstream_env() - @safetestset "Linearization Tests" include("downstream/linearize.jl") - @safetestset "Linearization Dummy Derivative Tests" include("downstream/linearization_dd.jl") - @safetestset "Inverse Models Test" include("downstream/inversemodel.jl") - @safetestset "Analysis Points Test" include("downstream/analysis_points.jl") - @safetestset "Analysis Points Test" include("downstream/test_disturbance_model.jl") - end + # if GROUP == "All" || GROUP == "Downstream" + # activate_downstream_env() + # @safetestset "Linearization Tests" include("downstream/linearize.jl") + # @safetestset "Linearization Dummy Derivative Tests" include("downstream/linearization_dd.jl") + # @safetestset "Inverse Models Test" include("downstream/inversemodel.jl") + # @safetestset "Analysis Points Test" include("downstream/analysis_points.jl") + # @safetestset "Analysis Points Test" include("downstream/test_disturbance_model.jl") + # end - if GROUP == "All" || GROUP == "FMI" - activate_fmi_env() - @safetestset "FMI Extension Test" include("fmi/fmi.jl") - end + # if GROUP == "All" || GROUP == "FMI" + # activate_fmi_env() + # @safetestset "FMI Extension Test" include("fmi/fmi.jl") + # end - if GROUP == "All" || GROUP == "Extensions" - activate_extensions_env() - @safetestset "HomotopyContinuation Extension Test" include("extensions/homotopy_continuation.jl") - @safetestset "Auto Differentiation Test" include("extensions/ad.jl") - @safetestset "LabelledArrays Test" include("labelledarrays.jl") - @safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl") - @safetestset "InfiniteOpt Extension Test" include("extensions/test_infiniteopt.jl") - end + # if GROUP == "All" || GROUP == "Extensions" + # activate_extensions_env() + # @safetestset "HomotopyContinuation Extension Test" include("extensions/homotopy_continuation.jl") + # @safetestset "Auto Differentiation Test" include("extensions/ad.jl") + # @safetestset "LabelledArrays Test" include("labelledarrays.jl") + # @safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl") + # @safetestset "InfiniteOpt Extension Test" include("extensions/test_infiniteopt.jl") + # end end From 89a375a0c42596ff4022bf314ddc8d26b8948889 Mon Sep 17 00:00:00 2001 From: Andrew Leonard Date: Fri, 2 May 2025 11:09:29 -0400 Subject: [PATCH 2/2] units for change of variables --- src/systems/diffeqs/basic_transformations.jl | 19 +- test/basic_transformations.jl | 18 +- test/runtests.jl | 212 +++++++++---------- 3 files changed, 139 insertions(+), 110 deletions(-) diff --git a/src/systems/diffeqs/basic_transformations.jl b/src/systems/diffeqs/basic_transformations.jl index a08c83ffb6..d41e948d64 100644 --- a/src/systems/diffeqs/basic_transformations.jl +++ b/src/systems/diffeqs/basic_transformations.jl @@ -126,10 +126,23 @@ function change_independent_variable( # Set up intermediate and final variables for the transformation iv1name = nameof(iv1) # e.g. :t iv2name = nameof(operation(iv2_of_iv1)) # e.g. :u - iv2, = @independent_variables $iv2name # e.g. u - iv1_of_iv2, = GlobalScope.(@variables $iv1name(iv2)) # inverse, e.g. t(u), global because iv1 has no namespacing in sys D1 = Differential(iv1) # e.g. d/d(t) - div2_of_iv1 = GlobalScope(default_toterm(D1(iv2_of_iv1))) # e.g. uˍt(t) + + # construct new terms, e.g: + # iv2 -> u + # iv1_of_iv2 -> t(u), (inverse, global because iv1 has no namespacing in sys) + # div2_of_iv1 -> uˍt(t) + iv2_unit = getmetadata(iv2_of_iv1, VariableUnit, nothing) + if isnothing(iv2_unit) + iv2, = @independent_variables $iv2name + iv1_of_iv2, = GlobalScope.(@variables $iv1name(iv2)) + div2_of_iv1 = GlobalScope(default_toterm(D1(iv2_of_iv1))) + else + iv2, = @independent_variables $iv2name [unit = iv2_unit] + iv1_of_iv2, = GlobalScope.(@variables $iv1name(iv2) [unit = get_unit(iv1)]) + div2_of_iv1 = GlobalScope(diff2term_with_unit(D1(iv2_of_iv1), iv1)) + end + div2_of_iv2 = substitute(div2_of_iv1, iv1 => iv2) # e.g. uˍt(u) div2_of_iv2_of_iv1 = substitute(div2_of_iv2, iv2 => iv2_of_iv1) # e.g. uˍt(u(t)) diff --git a/test/basic_transformations.jl b/test/basic_transformations.jl index 544a89cd29..183feca6d2 100644 --- a/test/basic_transformations.jl +++ b/test/basic_transformations.jl @@ -1,4 +1,4 @@ -using ModelingToolkit, OrdinaryDiffEq, DataInterpolations, Test +using ModelingToolkit, OrdinaryDiffEq, DataInterpolations, DynamicQuantities, Test @independent_variables t D = Differential(t) @@ -215,3 +215,19 @@ end M = ODESystem([D(x(t)) ~ x(t - 1)], t; name = :M) @test_throws "DDE" change_independent_variable(M, x(t)) end + +@testset "Change independent variable w/ units (free fall with 2nd order horizontal equation)" begin + @independent_variables t_units [unit = u"s"] + D_units = Differential(t_units) + @variables x(t_units) [unit = u"m"] y(t_units) [unit = u"m"] + @parameters g = 9.81 [unit = u"m * s^-2"] # gravitational acceleration + Mt = ODESystem([D_units(D_units(y)) ~ -g, D_units(D_units(x)) ~ 0], t_units; name = :M) # gives (x, y) as function of t, ... + Mx = change_independent_variable(Mt, x; add_old_diff = true) # ... but we want y as a function of x + Mx = structural_simplify(Mx; allow_symbolic = true) + Dx = Differential(Mx.x) + u0 = [Mx.y => 0.0, Dx(Mx.y) => 1.0, Mx.t_units => 0.0, Mx.xˍt_units => 10.0] + prob = ODEProblem(Mx, u0, (0.0, 20.0), []) # 1 = dy/dx = (dy/dt)/(dx/dt) means equal initial horizontal and vertical velocities + sol = solve(prob, Tsit5(); reltol = 1e-5) + # compare to analytical solution (x(t) = v*t, y(t) = v*t - g*t^2/2) + @test all(isapprox.(sol[Mx.y], sol[Mx.x - g * (Mx.t_units)^2 / 2]; atol = 1e-10)) +end diff --git a/test/runtests.jl b/test/runtests.jl index d214e75f69..37c738eec9 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -25,121 +25,121 @@ end @time begin if GROUP == "All" || GROUP == "InterfaceI" @testset "InterfaceI" begin - # @safetestset "Linear Algebra Test" include("linalg.jl") - # @safetestset "AbstractSystem Test" include("abstractsystem.jl") - # @safetestset "Variable Scope Tests" include("variable_scope.jl") - # @safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl") - # @safetestset "Parsing Test" include("variable_parsing.jl") - # @safetestset "Simplify Test" include("simplify.jl") - # @safetestset "Direct Usage Test" include("direct.jl") - # @safetestset "System Linearity Test" include("linearity.jl") - # @safetestset "Input Output Test" include("input_output_handling.jl") - # @safetestset "Clock Test" include("clock.jl") - # @safetestset "ODESystem Test" include("odesystem.jl") - # @safetestset "Dynamic Quantities Test" include("dq_units.jl") - # @safetestset "Unitful Quantities Test" include("units.jl") - # @safetestset "Mass Matrix Test" include("mass_matrix.jl") - # @safetestset "Reduction Test" include("reduction.jl") - # @safetestset "Split Parameters Test" include("split_parameters.jl") - # @safetestset "StaticArrays Test" include("static_arrays.jl") - # @safetestset "Components Test" include("components.jl") - # @safetestset "Model Parsing Test" include("model_parsing.jl") - # @safetestset "Error Handling" include("error_handling.jl") - # @safetestset "StructuralTransformations" include("structural_transformation/runtests.jl") + @safetestset "Linear Algebra Test" include("linalg.jl") + @safetestset "AbstractSystem Test" include("abstractsystem.jl") + @safetestset "Variable Scope Tests" include("variable_scope.jl") + @safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl") + @safetestset "Parsing Test" include("variable_parsing.jl") + @safetestset "Simplify Test" include("simplify.jl") + @safetestset "Direct Usage Test" include("direct.jl") + @safetestset "System Linearity Test" include("linearity.jl") + @safetestset "Input Output Test" include("input_output_handling.jl") + @safetestset "Clock Test" include("clock.jl") + @safetestset "ODESystem Test" include("odesystem.jl") + @safetestset "Dynamic Quantities Test" include("dq_units.jl") + @safetestset "Unitful Quantities Test" include("units.jl") + @safetestset "Mass Matrix Test" include("mass_matrix.jl") + @safetestset "Reduction Test" include("reduction.jl") + @safetestset "Split Parameters Test" include("split_parameters.jl") + @safetestset "StaticArrays Test" include("static_arrays.jl") + @safetestset "Components Test" include("components.jl") + @safetestset "Model Parsing Test" include("model_parsing.jl") + @safetestset "Error Handling" include("error_handling.jl") + @safetestset "StructuralTransformations" include("structural_transformation/runtests.jl") @safetestset "Basic transformations" include("basic_transformations.jl") - # @safetestset "State Selection Test" include("state_selection.jl") - # @safetestset "Symbolic Event Test" include("symbolic_events.jl") - # @safetestset "Stream Connect Test" include("stream_connectors.jl") - # @safetestset "Domain Connect Test" include("domain_connectors.jl") - # @safetestset "Lowering Integration Test" include("lowering_solving.jl") - # @safetestset "Dependency Graph Test" include("dep_graphs.jl") - # @safetestset "Function Registration Test" include("function_registration.jl") - # @safetestset "Precompiled Modules Test" include("precompile_test.jl") - # @safetestset "DAE Jacobians Test" include("dae_jacobian.jl") - # @safetestset "Jacobian Sparsity" include("jacobiansparsity.jl") - # @safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl") - # @safetestset "FuncAffect Test" include("funcaffect.jl") - # @safetestset "Constants Test" include("constants.jl") - # @safetestset "Parameter Dependency Test" include("parameter_dependencies.jl") - # @safetestset "Equation Type Accessors Test" include("equation_type_accessors.jl") - # @safetestset "System Accessor Functions Test" include("accessor_functions.jl") - # @safetestset "Equations with complex values" include("complex.jl") + @safetestset "State Selection Test" include("state_selection.jl") + @safetestset "Symbolic Event Test" include("symbolic_events.jl") + @safetestset "Stream Connect Test" include("stream_connectors.jl") + @safetestset "Domain Connect Test" include("domain_connectors.jl") + @safetestset "Lowering Integration Test" include("lowering_solving.jl") + @safetestset "Dependency Graph Test" include("dep_graphs.jl") + @safetestset "Function Registration Test" include("function_registration.jl") + @safetestset "Precompiled Modules Test" include("precompile_test.jl") + @safetestset "DAE Jacobians Test" include("dae_jacobian.jl") + @safetestset "Jacobian Sparsity" include("jacobiansparsity.jl") + @safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl") + @safetestset "FuncAffect Test" include("funcaffect.jl") + @safetestset "Constants Test" include("constants.jl") + @safetestset "Parameter Dependency Test" include("parameter_dependencies.jl") + @safetestset "Equation Type Accessors Test" include("equation_type_accessors.jl") + @safetestset "System Accessor Functions Test" include("accessor_functions.jl") + @safetestset "Equations with complex values" include("complex.jl") end end - # if GROUP == "All" || GROUP == "Initialization" - # @safetestset "Guess Propagation" include("guess_propagation.jl") - # @safetestset "Hierarchical Initialization Equations" include("hierarchical_initialization_eqs.jl") - # @safetestset "InitializationSystem Test" include("initializationsystem.jl") - # @safetestset "Initial Values Test" include("initial_values.jl") - # end + if GROUP == "All" || GROUP == "Initialization" + @safetestset "Guess Propagation" include("guess_propagation.jl") + @safetestset "Hierarchical Initialization Equations" include("hierarchical_initialization_eqs.jl") + @safetestset "InitializationSystem Test" include("initializationsystem.jl") + @safetestset "Initial Values Test" include("initial_values.jl") + end - # if GROUP == "All" || GROUP == "InterfaceII" - # @testset "InterfaceII" begin - # @safetestset "Code Generation Test" include("code_generation.jl") - # @safetestset "IndexCache Test" include("index_cache.jl") - # @safetestset "Variable Utils Test" include("variable_utils.jl") - # @safetestset "Variable Metadata Test" include("test_variable_metadata.jl") - # @safetestset "OptimizationSystem Test" include("optimizationsystem.jl") - # @safetestset "Discrete System" include("discrete_system.jl") - # @safetestset "Implicit Discrete System" include("implicit_discrete_system.jl") - # @safetestset "SteadyStateSystem Test" include("steadystatesystems.jl") - # @safetestset "SDESystem Test" include("sdesystem.jl") - # @safetestset "DDESystem Test" include("dde.jl") - # @safetestset "NonlinearSystem Test" include("nonlinearsystem.jl") - # @safetestset "SCCNonlinearProblem Test" include("scc_nonlinear_problem.jl") - # @safetestset "PDE Construction Test" include("pdesystem.jl") - # @safetestset "JumpSystem Test" include("jumpsystem.jl") - # @safetestset "Optimal Control + Constraints Tests" include("optimal_control.jl") - # @safetestset "print_tree" include("print_tree.jl") - # @safetestset "Constraints Test" include("constraints.jl") - # @safetestset "IfLifting Test" include("if_lifting.jl") - # @safetestset "Analysis Points Test" include("analysis_points.jl") - # @safetestset "Causal Variables Connection Test" include("causal_variables_connection.jl") - # @safetestset "Debugging Test" include("debugging.jl") - # @safetestset "Namespacing test" include("namespacing.jl") - # @safetestset "Subsystem replacement" include("substitute_component.jl") - # end - # end + if GROUP == "All" || GROUP == "InterfaceII" + @testset "InterfaceII" begin + @safetestset "Code Generation Test" include("code_generation.jl") + @safetestset "IndexCache Test" include("index_cache.jl") + @safetestset "Variable Utils Test" include("variable_utils.jl") + @safetestset "Variable Metadata Test" include("test_variable_metadata.jl") + @safetestset "OptimizationSystem Test" include("optimizationsystem.jl") + @safetestset "Discrete System" include("discrete_system.jl") + @safetestset "Implicit Discrete System" include("implicit_discrete_system.jl") + @safetestset "SteadyStateSystem Test" include("steadystatesystems.jl") + @safetestset "SDESystem Test" include("sdesystem.jl") + @safetestset "DDESystem Test" include("dde.jl") + @safetestset "NonlinearSystem Test" include("nonlinearsystem.jl") + @safetestset "SCCNonlinearProblem Test" include("scc_nonlinear_problem.jl") + @safetestset "PDE Construction Test" include("pdesystem.jl") + @safetestset "JumpSystem Test" include("jumpsystem.jl") + @safetestset "Optimal Control + Constraints Tests" include("optimal_control.jl") + @safetestset "print_tree" include("print_tree.jl") + @safetestset "Constraints Test" include("constraints.jl") + @safetestset "IfLifting Test" include("if_lifting.jl") + @safetestset "Analysis Points Test" include("analysis_points.jl") + @safetestset "Causal Variables Connection Test" include("causal_variables_connection.jl") + @safetestset "Debugging Test" include("debugging.jl") + @safetestset "Namespacing test" include("namespacing.jl") + @safetestset "Subsystem replacement" include("substitute_component.jl") + end + end - # if GROUP == "All" || GROUP == "SymbolicIndexingInterface" - # @safetestset "SymbolicIndexingInterface test" include("symbolic_indexing_interface.jl") - # @safetestset "SciML Problem Input Test" include("sciml_problem_inputs.jl") - # @safetestset "MTKParameters Test" include("mtkparameters.jl") - # end + if GROUP == "All" || GROUP == "SymbolicIndexingInterface" + @safetestset "SymbolicIndexingInterface test" include("symbolic_indexing_interface.jl") + @safetestset "SciML Problem Input Test" include("sciml_problem_inputs.jl") + @safetestset "MTKParameters Test" include("mtkparameters.jl") + end - # if GROUP == "All" || GROUP == "Extended" - # @safetestset "Test Big System Usage" include("bigsystem.jl") - # println("C compilation test requires gcc available in the path!") - # @safetestset "C Compilation Test" include("ccompile.jl") - # @testset "Distributed Test" include("distributed.jl") - # @testset "Serialization" include("serialization.jl") - # end + if GROUP == "All" || GROUP == "Extended" + @safetestset "Test Big System Usage" include("bigsystem.jl") + println("C compilation test requires gcc available in the path!") + @safetestset "C Compilation Test" include("ccompile.jl") + @testset "Distributed Test" include("distributed.jl") + @testset "Serialization" include("serialization.jl") + end - # if GROUP == "All" || GROUP == "RegressionI" - # @safetestset "Latexify recipes Test" include("latexify.jl") - # end + if GROUP == "All" || GROUP == "RegressionI" + @safetestset "Latexify recipes Test" include("latexify.jl") + end - # if GROUP == "All" || GROUP == "Downstream" - # activate_downstream_env() - # @safetestset "Linearization Tests" include("downstream/linearize.jl") - # @safetestset "Linearization Dummy Derivative Tests" include("downstream/linearization_dd.jl") - # @safetestset "Inverse Models Test" include("downstream/inversemodel.jl") - # @safetestset "Analysis Points Test" include("downstream/analysis_points.jl") - # @safetestset "Analysis Points Test" include("downstream/test_disturbance_model.jl") - # end + if GROUP == "All" || GROUP == "Downstream" + activate_downstream_env() + @safetestset "Linearization Tests" include("downstream/linearize.jl") + @safetestset "Linearization Dummy Derivative Tests" include("downstream/linearization_dd.jl") + @safetestset "Inverse Models Test" include("downstream/inversemodel.jl") + @safetestset "Analysis Points Test" include("downstream/analysis_points.jl") + @safetestset "Analysis Points Test" include("downstream/test_disturbance_model.jl") + end - # if GROUP == "All" || GROUP == "FMI" - # activate_fmi_env() - # @safetestset "FMI Extension Test" include("fmi/fmi.jl") - # end + if GROUP == "All" || GROUP == "FMI" + activate_fmi_env() + @safetestset "FMI Extension Test" include("fmi/fmi.jl") + end - # if GROUP == "All" || GROUP == "Extensions" - # activate_extensions_env() - # @safetestset "HomotopyContinuation Extension Test" include("extensions/homotopy_continuation.jl") - # @safetestset "Auto Differentiation Test" include("extensions/ad.jl") - # @safetestset "LabelledArrays Test" include("labelledarrays.jl") - # @safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl") - # @safetestset "InfiniteOpt Extension Test" include("extensions/test_infiniteopt.jl") - # end + if GROUP == "All" || GROUP == "Extensions" + activate_extensions_env() + @safetestset "HomotopyContinuation Extension Test" include("extensions/homotopy_continuation.jl") + @safetestset "Auto Differentiation Test" include("extensions/ad.jl") + @safetestset "LabelledArrays Test" include("labelledarrays.jl") + @safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl") + @safetestset "InfiniteOpt Extension Test" include("extensions/test_infiniteopt.jl") + end end