@@ -538,6 +538,30 @@ def test_get_reward(self):
538538 sat .name : - 10.0 for i , sat in enumerate (env .unwrapped .satellites )
539539 }
540540
541+ @patch (
542+ "bsk_rl.GeneralSatelliteTasking._get_truncated" ,
543+ MagicMock (return_value = False ),
544+ )
545+ def test_get_reward_missing_sat (self ):
546+ env = ConstellationTasking (
547+ satellites = [
548+ MagicMock (is_alive = MagicMock (return_value = False )) for i in range (3 )
549+ ],
550+ world_type = MagicMock (),
551+ scenario = MagicMock (),
552+ rewarder = MagicMock (),
553+ failure_penalty = - 20.0 ,
554+ )
555+ env ._agents_last_compute_time = None
556+ env .simulator = MagicMock (sim_time = 0.0 )
557+ env .newly_dead = [sat .name for sat in env .unwrapped .satellites ]
558+ env .reward_dict = {env .unwrapped .satellites [0 ].name : 10.0 }
559+ assert env ._get_reward () == {
560+ env .unwrapped .satellites [0 ].name : - 10.0 ,
561+ env .unwrapped .satellites [1 ].name : - 20.0 ,
562+ env .unwrapped .satellites [2 ].name : - 20.0 ,
563+ }
564+
541565 @pytest .mark .parametrize ("timeout" , [False , True ])
542566 @pytest .mark .parametrize ("terminate_on_time_limit" , [False , True ])
543567 def test_get_terminated (self , timeout , terminate_on_time_limit ):
0 commit comments