Beispiel #1
0
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()))