Test that deep copy works correctly.
(sample_trajectory_group)
| 79 | |
| 80 | |
| 81 | def test_deep_copy(sample_trajectory_group): |
| 82 | """Test that deep copy works correctly.""" |
| 83 | copied = copy.deepcopy(sample_trajectory_group) |
| 84 | |
| 85 | # Should be a different object |
| 86 | assert copied is not sample_trajectory_group |
| 87 | |
| 88 | # Should have different trajectories list (deep copy) |
| 89 | assert copied.trajectories is not sample_trajectory_group.trajectories |
| 90 | |
| 91 | # Trajectories themselves should be different objects |
| 92 | assert copied.trajectories[0] is not sample_trajectory_group.trajectories[0] |
| 93 | assert copied.trajectories[1] is not sample_trajectory_group.trajectories[1] |
| 94 | |
| 95 | # But should have same content |
| 96 | assert len(copied.trajectories) == len(sample_trajectory_group.trajectories) |
| 97 | assert ( |
| 98 | copied.trajectories[0].reward == sample_trajectory_group.trajectories[0].reward |
| 99 | ) |
| 100 | assert ( |
| 101 | copied.trajectories[1].reward == sample_trajectory_group.trajectories[1].reward |
| 102 | ) |
| 103 | |
| 104 | # Exceptions should also be deep copied |
| 105 | assert copied.exceptions is not sample_trajectory_group.exceptions |
| 106 | |
| 107 | |
| 108 | def test_deep_copy_with_exceptions(): |
nothing calls this directly
no outgoing calls
no test coverage detected