@@ -720,14 +720,31 @@ def area_of_triangle(sides):
720720 )
721721 new_optimizer .load_state (state_path )
722722
723- suggestion1 = optimizer .suggest ()
724- suggestion2 = new_optimizer .suggest ()
723+ # Test that key properties match
724+ assert len (optimizer .space ) == len (new_optimizer .space )
725+ assert optimizer .max ["target" ] == new_optimizer .max ["target" ]
726+ assert optimizer .max ["params" ] == new_optimizer .max ["params" ]
725727
726- # Compare suggestions with reduced precision
727- np .testing .assert_array_almost_equal (
728- suggestion1 ['sides' ],
729- suggestion2 ['sides' ],
730- decimal = 10
731- )
728+ # Test that all historical data matches
729+ for i in range (len (optimizer .space )):
730+ np .testing .assert_array_almost_equal (
731+ optimizer .space .params [i ],
732+ new_optimizer .space .params [i ]
733+ )
734+ assert optimizer .space .target [i ] == new_optimizer .space .target [i ]
735+ np .testing .assert_array_almost_equal (
736+ optimizer .res [i ]["params" ]["sides" ],
737+ new_optimizer .res [i ]["params" ]["sides" ]
738+ )
739+ assert optimizer .res [i ]["target" ] == new_optimizer .res [i ]["target" ]
732740
741+ # Test that multiple subsequent suggestions match
742+ for _ in range (5 ):
743+ suggestion1 = optimizer .suggest ()
744+ suggestion2 = new_optimizer .suggest ()
745+ np .testing .assert_array_almost_equal (
746+ suggestion1 ['sides' ],
747+ suggestion2 ['sides' ],
748+ decimal = 10
749+ )
733750
0 commit comments