@@ -6059,6 +6059,42 @@ def test_smoke_compose_transform(transform):
6059
6059
Compose (transform ())
6060
6060
6061
6061
6062
+ @pytest .mark .parametrize ("transform" , transforms )
6063
+ def test_clone_parent (transform ):
6064
+ base_env1 = ContinuousActionVecMockEnv ()
6065
+ base_env2 = ContinuousActionVecMockEnv ()
6066
+ env = TransformedEnv (base_env1 , transform ())
6067
+ env_clone = TransformedEnv (base_env2 , env .transform .clone ())
6068
+
6069
+ assert env_clone .transform .parent .base_env is not base_env1
6070
+ assert env_clone .transform .parent .base_env is base_env2
6071
+ assert env .transform .parent .base_env is not base_env2
6072
+ assert env .transform .parent .base_env is base_env1
6073
+
6074
+
6075
+ @pytest .mark .parametrize ("transform" , transforms )
6076
+ def test_clone_parent_compose (transform ):
6077
+ base_env1 = ContinuousActionVecMockEnv ()
6078
+ base_env2 = ContinuousActionVecMockEnv ()
6079
+ env = TransformedEnv (base_env1 , Compose (ToTensorImage (), transform ()))
6080
+ t = env .transform .clone ()
6081
+
6082
+ assert t .parent is None
6083
+ assert t [0 ].parent is None
6084
+ assert t [1 ].parent is None
6085
+
6086
+ env_clone = TransformedEnv (base_env2 , Compose (ToTensorImage (), * t ))
6087
+
6088
+ assert env_clone .transform [0 ].parent .base_env is not base_env1
6089
+ assert env_clone .transform [0 ].parent .base_env is base_env2
6090
+ assert env .transform [0 ].parent .base_env is not base_env2
6091
+ assert env .transform [0 ].parent .base_env is base_env1
6092
+ assert env_clone .transform [1 ].parent .base_env is not base_env1
6093
+ assert env_clone .transform [1 ].parent .base_env is base_env2
6094
+ assert env .transform [1 ].parent .base_env is not base_env2
6095
+ assert env .transform [1 ].parent .base_env is base_env1
6096
+
6097
+
6062
6098
if __name__ == "__main__" :
6063
6099
args , unknown = argparse .ArgumentParser ().parse_known_args ()
6064
6100
pytest .main ([__file__ , "--capture" , "no" , "--exitfirst" ] + unknown )
0 commit comments