@@ -98,6 +98,19 @@ def test_save_load_machine():
9898 assert result .frame == None
9999
100100
101+ def test_save_load_json_compressed ():
102+ """Check that you can save/load a compressed json file"""
103+ test_obj = load (join (DATA_DIR , "Machine" , "Toyota_Prius.json" ))
104+ # Check save
105+ file_path = join (save_path , "Toyota_Prius_compressed" )
106+ assert not isfile (file_path + ".json.gz" )
107+ test_obj .save (file_path , type_compression = 1 )
108+ assert isfile (file_path + ".json.gz" )
109+ # Check load
110+ test_obj2 = load (file_path + ".json.gz" )
111+ assert test_obj == test_obj2
112+
113+
101114@pytest .mark .IPMSM
102115@pytest .mark .MagFEMM
103116@pytest .mark .periodicity
@@ -145,29 +158,57 @@ def test_save_load_folder_path():
145158 if isfile (file_path ):
146159 remove (file_path )
147160
161+ # Check save
148162 assert isfile (file_path ) == False
149163 test_obj .save (loc_save_path , is_folder = True )
150164 assert isfile (file_path )
151165 assert isfile (join (loc_save_path , "MagnetPrius.json" ))
166+ assert isfile (join (loc_save_path , "MagnetPrius_00001.json" ))
152167 assert isfile (join (loc_save_path , "M400-50A.json" ))
168+ assert isfile (join (loc_save_path , "M400-50A_00001.json" ))
169+ assert isfile (join (loc_save_path , "M400-50A_00002.json" ))
170+ assert isfile (join (loc_save_path , "Insulator1.json" ))
171+ assert isfile (join (loc_save_path , "Air.json" ))
172+ assert isfile (join (loc_save_path , "Copper1.json" ))
153173 assert isfile (join (loc_save_path , "Toyota_Prius.json" ))
154- assert isfile (join (loc_save_path , "test_save_load_folder_path.json" ))
155- assert len (listdir (loc_save_path )) == 8
174+ assert isfile (join (loc_save_path , "test_save_load_folder_path.json" )) # Simu
175+ assert isfile (join (loc_save_path , "FolderSaved.json" )) # Output
176+ assert len (listdir (loc_save_path )) == 11
177+ # Check load
156178 test_obj2 = load (loc_save_path )
157179 assert test_obj == test_obj2
158180 assert callable (test_obj .simu .postproc_list [0 ]._run_func )
159181 assert callable (test_obj .simu .postproc_list [1 ]._run_func )
182+ # Check that material name are still the same
183+ assert test_obj2 .simu .machine .stator .mat_type .name == "M400-50A"
184+ assert test_obj2 .simu .machine .rotor .mat_type .name == "M400-50A"
185+ assert test_obj2 .simu .machine .shaft .mat_type .name == "M400-50A"
160186
161187 # Check that the machine can be updated
162188 test_obj2 .simu .machine .stator .L1 = 999
189+ test_obj2 .simu .machine .name = "Toyota2"
163190 # Check that empty materials are not save in separate file
164191 test_obj2 .simu .machine .stator .winding .conductor .ins_mat ._set_None ()
165192
166- test_obj2 .save (loc_save_path , is_folder = True )
193+ test_obj2 .save (loc_save_path , is_folder = True , is_delete_old = True )
194+ assert isfile (join (loc_save_path , "MagnetPrius.json" ))
195+ assert isfile (join (loc_save_path , "MagnetPrius_00001.json" ))
196+ assert isfile (join (loc_save_path , "M400-50A.json" ))
197+ assert isfile (join (loc_save_path , "M400-50A_00001.json" ))
198+ assert isfile (join (loc_save_path , "M400-50A_00002.json" ))
199+ assert not isfile (join (loc_save_path , "Insulator1.json" )) # Material removed
200+ assert not isfile (join (loc_save_path , "Material_00001.json" )) # Material removed
201+ assert isfile (join (loc_save_path , "Air.json" ))
202+ assert isfile (join (loc_save_path , "Copper1.json" ))
203+ assert isfile (join (loc_save_path , "Toyota2.json" ))
204+ assert not isfile (join (loc_save_path , "Toyota_Prius.json" ))
205+ assert isfile (join (loc_save_path , "test_save_load_folder_path.json" )) # Simu
206+ assert isfile (join (loc_save_path , "FolderSaved.json" )) # Output
207+ assert len (listdir (loc_save_path )) == 10
167208 test_obj3 = load (loc_save_path )
168209
169210 assert test_obj2 .simu .machine .stator .L1 == test_obj3 .simu .machine .stator .L1
170- assert len (listdir ( loc_save_path )) == 8
211+ assert len (test_obj2 . compare ( test_obj3 )) == 0
171212
172213
173214def test_save_load_just_name ():
@@ -349,6 +390,8 @@ def test_save_load_simu(type_file):
349390
350391if __name__ == "__main__" :
351392 test_save_load_folder_path ()
393+ test_save_load_json_compressed ()
394+ print ("Done" )
352395 # test_save_load_simu("json")
353396 # test_save_load_simu("h5")
354397 # test_save_load_simu("pkl")
0 commit comments