@@ -1097,3 +1097,43 @@ function supports_initialization(sys::System)
10971097    return  isempty (jumps (sys)) &&  _iszero (cost (sys)) && 
10981098           isempty (constraints (sys))
10991099end 
1100+ 
1101+ """ 
1102+     $(TYPEDSIGNATURES)  
1103+ 
1104+ Check if two systems are about equal, to the extent that ModelingToolkit.jl supports. Note 
1105+ that if this returns `true`, the systems are not guaranteed to be exactly equivalent 
1106+ (unless `sysa === sysb`) but are highly likely to represent a similar mathematical problem. 
1107+ If this returns `false`, the systems are very likely to be different. 
1108+ """ 
1109+ function  Base. isapprox (sysa:: System , sysb:: System )
1110+     sysa ===  sysb &&  return  true 
1111+     return  nameof (sysa) ==  nameof (sysb) && 
1112+            isequal (get_iv (sysa), get_iv (sysb)) && 
1113+            issetequal (get_eqs (sysa), get_eqs (sysb)) && 
1114+            issetequal (eachrow (get_noise_eqs (sysa)), eachrow (get_noise_eqs (sysb))) && 
1115+            issetequal (get_jumps (sysa), get_jumps (sysb)) && 
1116+            issetequal (get_constraints (sysa), get_constraints (sysb)) && 
1117+            issetequal (get_costs (sysa), get_costs (sysb)) && 
1118+            isequal (get_consolidate (sysa), get_consolidate (sysb)) && 
1119+            issetequal (get_unknowns (sysa), get_unknowns (sysb)) && 
1120+            issetequal (get_ps (sysa), get_ps (sysb)) && 
1121+            issetequal (get_brownians (sysa), get_brownians (sysb)) && 
1122+            issetequal (get_observed (sysa), get_observed (sysb)) && 
1123+            issetequal (get_parameter_dependencies (sysa), get_parameter_dependencies (sysb)) && 
1124+            isequal (get_description (sysa), get_description (sysb)) && 
1125+            isequal (get_defaults (sysa), get_defaults (sysb)) && 
1126+            isequal (get_guesses (sysa), get_guesses (sysb)) && 
1127+            issetequal (get_initialization_eqs (sysa), get_initialization_eqs (sysb)) && 
1128+            issetequal (get_continuous_events (sysa), get_continuous_events (sysb)) && 
1129+            issetequal (get_discrete_events (sysa), get_discrete_events (sysb)) && 
1130+            isequal (get_connector_type (sysa), get_connector_type (sysb)) && 
1131+            isequal (get_assertions (sysa), get_assertions (sysb)) && 
1132+            isequal (get_metadata (sysa), get_metadata (sysb)) && 
1133+            isequal (get_is_dde (sysa), get_is_dde (sysb)) && 
1134+            issetequal (get_tstops (sysa), get_tstops (sysb)) && 
1135+            issetequal (get_ignored_connections (sysa), get_ignored_connections (sysb)) && 
1136+            isequal (get_is_initializesystem (sysa), get_is_initializesystem (sysb)) && 
1137+            isequal (get_is_discrete (sysa), get_is_discrete (sysb)) && 
1138+            isequal (get_isscheduled (sysa), get_isscheduled (sysb))
1139+ end 
0 commit comments