@@ -2369,7 +2369,8 @@ def test_signal_prefixing(fcn):
23692369 'long_state_1' , 'long_state_2' , 'long_state_3' ]},
23702370 r"[\n]name='.*', states=\[.*\],[\n]outputs=3, inputs=2\)" , r"dt" ),
23712371])
2372- def test_system_repr (fcn , spec , expected , missing ):
2372+ @pytest .mark .parametrize ("format" , ['iosys' , 'loadable' ])
2373+ def test_loadable_system_repr (fcn , spec , expected , missing , format ):
23732374 spec ['outputs' ] = spec .get ('outputs' , 3 )
23742375 spec ['inputs' ] = spec .get ('inputs' , 2 )
23752376 if fcn is ct .ss :
@@ -2382,11 +2383,31 @@ def test_system_repr(fcn, spec, expected, missing):
23822383 sys = fcn (sys , omega , name = spec .get ('name' ))
23832384 case ct .tf :
23842385 sys = fcn (sys , name = spec .get ('name' ))
2385-
23862386 assert sys .shape == (sys .noutputs , sys .ninputs )
23872387
2388+ # Construct the 'iosys' format
2389+ iosys_expected = f"<{ sys .__class__ .__name__ } :{ sys .name } :" \
2390+ f"{ sys .input_labels } ->{ sys .output_labels } >"
2391+
2392+ # Make sure the default format is OK
2393+ out = repr (sys )
2394+ if ct .config .defaults ['iosys.repr_format' ] == 'iosys' :
2395+ assert out == iosys_expected
2396+ else :
2397+ assert re .search (expected , out ) != None
2398+
2399+ # Now set the format to the given type and make sure things look right
2400+ sys .repr_format = format
23882401 out = repr (sys )
2389- assert re .search (expected , out ) != None
2402+ if format == 'loadable' :
2403+ assert re .search (expected , out ) != None
23902404
2391- if missing is not None :
2392- assert re .search (missing , out ) is None
2405+ if missing is not None :
2406+ assert re .search (missing , out ) is None
2407+
2408+ # Make sure we can change the default format back to 'iosys'
2409+ sys .repr_format = None
2410+
2411+ # Test 'iosys', either set explicitly or via config.defaults
2412+ out = repr (sys )
2413+ assert out == iosys_expected
0 commit comments