@@ -675,71 +675,71 @@ def test_sample_system_prewarping(self):
675675 evalfr (plant_d_warped , np .exp (wwarp * 1j * Ts )),
676676 decimal = 4 )
677677
678- # test data for test_latex_repr, below
679- LTX_G1 = StateSpace ([[np .pi , 1e100 ],[- 1.23456789 , 5e-23 ]],
680- [[0 ], [1 ]],
681- [[987654321 , 0.001234 ]],
682- [[5 ]])
683678
679+ # test data for test_latex_repr below
680+ LTX_G1 = StateSpace ([[np .pi , 1e100 ], [- 1.23456789 , 5e-23 ]],
681+ [[0 ], [1 ]],
682+ [[987654321 , 0.001234 ]],
683+ [[5 ]])
684684
685685LTX_G2 = StateSpace ([],
686- [],
687- [],
688- [[1.2345 ,- 2e-200 ],[- 1 ,0 ]])
686+ [],
687+ [],
688+ [[1.2345 , - 2e-200 ], [- 1 , 0 ]])
689689
690+ LTX_G1_REF = {
691+ 'p3_p' : '\\ [\n \\ left(\n \\ begin{array}{rllrll|rll}\n 3.&\\ hspace{-1em}14&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n -1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ hline\n 9.&\\ hspace{-1em}88&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}00123&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
690692
691- LTX_REF = {
692- 'g1_p3_p' : '\\ [\n \\ left(\n \\ begin{array}{rllrll|rll}\n 3.&\\ hspace{-1em}14&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n -1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ hline\n 9.&\\ hspace{-1em}88&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}00123&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
693+ 'p5_p' : '\\ [\n \\ left(\n \\ begin{array}{rllrll|rll}\n 3.&\\ hspace{-1em}1416&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n -1.&\\ hspace{-1em}2346&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ hline\n 9.&\\ hspace{-1em}8765&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}001234&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
693694
694- 'g1_p5_p ' : '\\ [\n \\ left(\n \\ begin{array}{rllrll|rll }\n 3.&\\ hspace{-1em}1416 &\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}&0 \\ phantom{.} &\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n -1. &\\ hspace{-1em}2346 &\\ hspace{-1em}\\ phantom{ \\ cdot}&5 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}&1 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ hline \ n 9.&\\ hspace{-1em}8765 &\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}001234 &\\ hspace{-1em}\\ phantom{\\ cdot}&5 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
695+ 'p3_s ' : '\\ [\n \\ begin{array}{ll} \n A = \\ left(\\ begin{array}{rllrll}\n 3.&\\ hspace{-1em}14 &\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}\\ \\ \n -1. &\\ hspace{-1em}23 &\\ hspace{-1em}\\ phantom{\\ cdot}&5 \\ phantom{.} &\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23} \\ \\ \n \\ end{array} \\ right) \n & \n B = \\ left( \\ begin{array}{rll} \n 0 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{ \\ cdot} \\ \\ \n 1 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array} \\ right) \n \\ \\ \n C = \\ left( \\ begin{array}{rllrll} \ n 9.&\\ hspace{-1em}88 &\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}00123 &\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array} \\ right) \n & \n D = \\ left( \\ begin{array}{rll} \n 5 \\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array} \n \\ ]' ,
695696
696- 'g1_p3_s' : '\\ [\n \\ begin{array}{ll}\n A = \\ left(\\ begin{array}{rllrll}\n 3.&\\ hspace{-1em}14&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}\\ \\ \n -1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}\\ \\ \n \\ end{array}\\ right)\n &\n B = \\ left(\\ begin{array}{rll}\n 0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n 1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ \\ \n C = \\ left(\\ begin{array}{rllrll}\n 9.&\\ hspace{-1em}88&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}00123&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n &\n D = \\ left(\\ begin{array}{rll}\n 5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
697-
698- 'g1_p5_s' : '\\ [\n \\ begin{array}{ll}\n A = \\ left(\\ begin{array}{rllrll}\n 3.&\\ hspace{-1em}1416&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}\\ \\ \n -1.&\\ hspace{-1em}2346&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}\\ \\ \n \\ end{array}\\ right)\n &\n B = \\ left(\\ begin{array}{rll}\n 0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n 1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ \\ \n C = \\ left(\\ begin{array}{rllrll}\n 9.&\\ hspace{-1em}8765&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}001234&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n &\n D = \\ left(\\ begin{array}{rll}\n 5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
697+ 'p5_s' : '\\ [\n \\ begin{array}{ll}\n A = \\ left(\\ begin{array}{rllrll}\n 3.&\\ hspace{-1em}1416&\\ hspace{-1em}\\ phantom{\\ cdot}&1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{100}\\ \\ \n -1.&\\ hspace{-1em}2346&\\ hspace{-1em}\\ phantom{\\ cdot}&5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-23}\\ \\ \n \\ end{array}\\ right)\n &\n B = \\ left(\\ begin{array}{rll}\n 0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n 1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ \\ \n C = \\ left(\\ begin{array}{rllrll}\n 9.&\\ hspace{-1em}8765&\\ hspace{-1em}\\ cdot10^{8}&0.&\\ hspace{-1em}001234&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n &\n D = \\ left(\\ begin{array}{rll}\n 5\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
698+ }
699699
700- 'g2_p3_p' : '\\ [\n \\ left(\n \\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
700+ LTX_G2_REF = {
701+ 'p3_p' : '\\ [\n \\ left(\n \\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
701702
702- 'g2_p5_p ' : '\\ [\n \\ left(\n \\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}2345&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
703+ 'p5_p ' : '\\ [\n \\ left(\n \\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}2345&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ ]' ,
703704
704- 'g2_p3_s ' : '\\ [\n \\ begin{array}{ll}\n D = \\ left(\\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
705+ 'p3_s ' : '\\ [\n \\ begin{array}{ll}\n D = \\ left(\\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}23&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
705706
706- 'g2_p5_s ' : '\\ [\n \\ begin{array}{ll}\n D = \\ left(\\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}2345&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
707+ 'p5_s ' : '\\ [\n \\ begin{array}{ll}\n D = \\ left(\\ begin{array}{rllrll}\n 1.&\\ hspace{-1em}2345&\\ hspace{-1em}\\ phantom{\\ cdot}&-2\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ cdot10^{-200}\\ \\ \n -1\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}&0\\ phantom{.}&\\ hspace{-1em}&\\ hspace{-1em}\\ phantom{\\ cdot}\\ \\ \n \\ end{array}\\ right)\n \\ end{array}\n \\ ]' ,
707708}
708709
709- @pytest .mark .parametrize (
710- "g, repr_type, num_format, refkey" ,
711- [
712- (LTX_G1 , None , None , 'g1_p3_p' ),
713- (LTX_G1 , "partitioned" , ".3g" , 'g1_p3_p' ),
714- (LTX_G1 , "partitioned" , ".5g" , 'g1_p5_p' ),
715- (LTX_G1 , "separate" , ".3g" , 'g1_p3_s' ),
716- (LTX_G1 , "separate" , ".5g" , 'g1_p5_s' ),
717- (LTX_G2 , "partitioned" , ".3g" , 'g2_p3_p' ),
718- (LTX_G2 , "partitioned" , ".5g" , 'g2_p5_p' ),
719- (LTX_G2 , "separate" , ".3g" , 'g2_p3_s' ),
720- (LTX_G2 , "separate" , ".5g" , 'g2_p5_s' ),
721- ])
722- def test_latex_repr (g , repr_type , num_format , refkey ):
723- # Test '_latex_repr_' with different config values
724- # This is a 'gold image' test, so if you change behaviour,
725- # you'll need to regenerate the reference results.
726- # Try something like:
727- # control.reset_defaults()
728- # print(f'g1_p3_p : {g1._repr_latex_()!r}')
710+ refkey_n = {None : 'p3' , '.3g' : 'p3' , '.5g' : 'p5' }
711+ refkey_r = {None : 'p' , 'partitioned' : 'p' , 'separate' : 's' }
712+
713+
714+ @pytest .mark .parametrize (" g, ref" ,
715+ [(LTX_G1 , LTX_G1_REF ),
716+ (LTX_G2 , LTX_G2_REF )])
717+ @pytest .mark .parametrize ("repr_type" , [None , "partitioned" , "separate" ])
718+ @pytest .mark .parametrize ("num_format" , [None , ".3g" , ".5g" ])
719+ def test_latex_repr (g , ref , repr_type , num_format ):
720+ """Test `._latex_repr_` with different config values
721+
722+ This is a 'gold image' test, so if you change behaviour,
723+ you'll need to regenerate the reference results.
724+ Try something like:
725+ control.reset_defaults()
726+ print(f'p3_p : {g1._repr_latex_()!r}')
727+ """
729728 from control import set_defaults , reset_defaults
730729 try :
731- # add "editsdefaults" fixture and remove the reset_defaults as soon as #438 is merged
730+ # add "editsdefaults" fixture and remove the reset_defaults as soon as
731+ # gh-438 is merged
732732 reset_defaults ()
733733 if num_format is not None :
734734 set_defaults ('statesp' , latex_num_format = num_format )
735735
736736 if repr_type is not None :
737737 set_defaults ('statesp' , latex_repr_type = repr_type )
738738
739- assert g ._repr_latex_ () == LTX_REF [refkey ]
739+ refkey = "{}_{}" .format (refkey_n [num_format ], refkey_r [repr_type ])
740+ assert g ._repr_latex_ () == ref [refkey ]
740741 finally :
741742 reset_defaults ()
742- pass
743743
744744
745745if __name__ == "__main__" :
0 commit comments