def _test_export( outputdir, expected_number_materials, expected_number_modules, dry_run ): if dry_run: return # Test ini infilepath = outputdir.joinpath(PenepmaExporter.DEFAULT_IN_FILENAME) assert infilepath.exists() input = PenepmaInput() with open(infilepath, "r") as fp: input.read(fp) assert input.SKPAR.get()[0] == KPAR.ELECTRON # Test materials assert len(list(outputdir.glob("mat*.mat"))) == expected_number_materials # Test geometry geofilepath = outputdir.joinpath(PenepmaExporter.DEFAULT_GEO_FILENAME) assert geofilepath.exists() geometry = Geometry() material_lookup = dict( (index, None) for index in range(1, expected_number_materials + 1) ) with open(geofilepath, "r") as fp: geometry.read(fp, material_lookup) assert len(geometry.get_modules()) == expected_number_modules
def testwriteread(self): material_lookup = {0: VACUUM, 1: self.mat1, 2: self.mat2} fileobj = io.StringIO() try: self.geo.write(fileobj) fileobj.seek(0) lines = fileobj.getvalue().splitlines() self.assertListEqual(self.LINES[:3], lines[:3]) self.assertEqual(self.LINES[14], lines[14]) self.assertEqual(self.LINES[26], lines[26]) self.assertEqual(self.LINES[38], lines[38]) self.assertEqual(self.LINES[50], lines[50]) self.assertEqual(self.LINES[51], lines[51]) self.assertListEqual(self.LINES[57:65], lines[57:65]) self.assertEqual(self.LINES[65], lines[65]) self.assertListEqual(self.LINES[71:], lines[71:]) fileobj.seek(0) geometry = Geometry() geometry.read(fileobj, material_lookup) self._test_geometry(geometry) index_lookup = geometry.indexify() self.assertEqual(4 + 3 + 3, len(index_lookup)) finally: fileobj.close()
def test_epma1_read(self): material_lookup = {1: self.mat1} filepath = os.path.join(self.testdatadir, 'epma1.geo') geometry = Geometry() with open(filepath, 'r') as fp: geometry.read(fp, material_lookup) self.assertEqual('Cylindrical homogeneous foil', geometry.title) self.assertEqual(3, len(geometry.get_surfaces())) self.assertEqual(1, len(geometry.get_modules())) self.assertEqual(1, len(geometry.get_materials()))
def test_epma2_read(self): material_lookup = {1: self.mat1, 2: self.mat2} filepath = os.path.join(self.testdatadir, 'epma2.geo') geometry = Geometry() with open(filepath, 'r') as fp: geometry.read(fp, material_lookup) self.assertEqual('Cylindrical foil with a material couple', geometry.title) self.assertEqual(4, len(geometry.get_surfaces())) self.assertEqual(2, len(geometry.get_modules())) self.assertEqual(2, len(geometry.get_materials()))