예제 #1
0
    def test__ne__(self):
        s1 = VerticalLayerSample(GERMANIUM, ZINC)
        s1.add_layer(GALLIUM, 500.0)
        self.assertNotEqual(s1, self.s1)

        s1 = VerticalLayerSample(COPPER, ZINC)
        self.assertNotEqual(s1, self.s1)

        s1 = VerticalLayerSample(COPPER, ZINC)
        s1.add_layer(GALLIUM, 501.0)
        self.assertNotEqual(s1, self.s1)
예제 #2
0
 def testconvert_parse_same_layer(self):
     handler = VerticalLayerSampleHDF5Handler()
     sample = VerticalLayerSample(COPPER,
                                  ZINC,
                                  depth_m=0.3,
                                  tilt_rad=0.1,
                                  azimuth_rad=0.2)
     layer = sample.add_layer(GERMANIUM, 20e-9)
     sample.add_layer(GALLIUM, 50e-9)
     sample.layers.append(layer)
     sample2 = self.convert_parse_hdf5handler(handler, sample)
     self.assertEqual(sample2, sample)
예제 #3
0
 def testconvert(self):
     handler = VerticalLayerSampleSeriesHandler()
     sample = VerticalLayerSample(COPPER, ZINC, depth_m=0.3, tilt_rad=0.1, azimuth_rad=0.2)
     sample.add_layer(GERMANIUM, 20e-9)
     sample.add_layer(GALLIUM, 50e-9)
     s = handler.convert(sample)
     self.assertEqual(13, len(s))
예제 #4
0
 def testconvert_parse_infinite_depth(self):
     handler = VerticalLayerSampleHDF5Handler()
     sample = VerticalLayerSample(COPPER,
                                  ZINC,
                                  tilt_rad=0.1,
                                  azimuth_rad=0.2)
     sample.add_layer(GERMANIUM, 20e-9)
     sample.add_layer(GALLIUM, 50e-9)
     sample2 = self.convert_parse_hdf5handler(handler, sample)
     self.assertEqual(sample2, sample)
예제 #5
0
 def testconvert(self):
     handler = VerticalLayerSampleHtmlHandler()
     sample = VerticalLayerSample(COPPER,
                                  ZINC,
                                  depth_m=0.3,
                                  tilt_rad=0.1,
                                  azimuth_rad=0.2)
     sample.add_layer(GERMANIUM, 20e-9)
     sample.add_layer(GALLIUM, 50e-9)
     root = handler.convert(sample)
     self.assertEqual(8, len(root.children))
예제 #6
0
    def setUp(self):
        super().setUp()

        self.s1 = VerticalLayerSample(COPPER, ZINC)
        self.s1.add_layer(GALLIUM, 500.0)

        self.s2 = VerticalLayerSample(COPPER, ZINC)
        self.s2.add_layer(COPPER, 100.0)
        self.s2.add_layer(GERMANIUM, 200.0)

        self.s3 = VerticalLayerSample(COPPER, ZINC)
        self.s3.add_layer(GALLIUM, 500.0)
        self.s3.depth_m = 400.0
예제 #7
0
 def test__eq__(self):
     s1 = VerticalLayerSample(COPPER, ZINC)
     s1.add_layer(GALLIUM, 500.0)
     self.assertEqual(s1, self.s1)
예제 #8
0
class TestVerticalLayerSample(TestCase):

    def setUp(self):
        super().setUp()

        self.s1 = VerticalLayerSample(COPPER, ZINC)
        self.s1.add_layer(GALLIUM, 500.0)

        self.s2 = VerticalLayerSample(COPPER, ZINC)
        self.s2.add_layer(COPPER, 100.0)
        self.s2.add_layer(GERMANIUM, 200.0)

        self.s3 = VerticalLayerSample(COPPER, ZINC)
        self.s3.add_layer(GALLIUM, 500.0)
        self.s3.depth_m = 400.0

    def testskeleton(self):
        # Vertical layers 1
        self.assertEqual(COPPER, self.s1.left_material)
        self.assertEqual(ZINC, self.s1.right_material)

        self.assertEqual(GALLIUM, self.s1.layers[0].material)
        self.assertAlmostEqual(500.0, self.s1.layers[0].thickness_m, 4)

        # Vertical layers 2
        self.assertEqual(COPPER, self.s2.left_material)
        self.assertEqual(ZINC, self.s2.right_material)

        self.assertEqual(2, len(self.s2.layers))
        self.assertEqual(COPPER, self.s2.layers[0].material)
        self.assertAlmostEqual(100.0, self.s2.layers[0].thickness_m, 4)
        self.assertAlmostEqual(200.0, self.s2.layers[1].thickness_m, 4)
        self.assertEqual(GERMANIUM, self.s2.layers[1].material)

        # Vertical layers 3
        self.assertEqual(COPPER, self.s3.left_material)
        self.assertEqual(ZINC, self.s3.right_material)

        self.assertEqual(GALLIUM, self.s3.layers[0].material)
        self.assertAlmostEqual(500.0, self.s3.layers[0].thickness_m, 4)

    def testmaterials(self):
        self.assertEqual(3, len(self.s1.materials))
        self.assertEqual(3, len(self.s2.materials))
        self.assertEqual(3, len(self.s3.materials))

    def testlayers_xpositions_m(self):
        # Vertical layers 1
        xpositions_m = self.s1.layers_xpositions_m
        self.assertEqual(len(self.s1.layers), len(xpositions_m))

        xmin_m, xmax_m = xpositions_m[0]
        self.assertAlmostEqual(-250.0, xmin_m, 4)
        self.assertAlmostEqual(250.0, xmax_m, 4)

        # Vertical layers 2
        xpositions_m = self.s2.layers_xpositions_m
        self.assertEqual(len(self.s2.layers), len(xpositions_m))

        xmin_m, xmax_m = xpositions_m[0]
        self.assertAlmostEqual(-150.0, xmin_m, 4)
        self.assertAlmostEqual(-50.0, xmax_m, 4)

        xmin_m, xmax_m = xpositions_m[1]
        self.assertAlmostEqual(-50.0, xmin_m, 4)
        self.assertAlmostEqual(150.0, xmax_m, 4)

        # Vertical layers 3
        xpositions_m = self.s3.layers_xpositions_m
        self.assertEqual(len(self.s3.layers), len(xpositions_m))

        xmin_m, xmax_m = xpositions_m[0]
        self.assertAlmostEqual(-250.0, xmin_m, 4)
        self.assertAlmostEqual(250.0, xmax_m, 4)

    def test__eq__(self):
        s1 = VerticalLayerSample(COPPER, ZINC)
        s1.add_layer(GALLIUM, 500.0)
        self.assertEqual(s1, self.s1)

    def test__ne__(self):
        s1 = VerticalLayerSample(GERMANIUM, ZINC)
        s1.add_layer(GALLIUM, 500.0)
        self.assertNotEqual(s1, self.s1)

        s1 = VerticalLayerSample(COPPER, ZINC)
        self.assertNotEqual(s1, self.s1)

        s1 = VerticalLayerSample(COPPER, ZINC)
        s1.add_layer(GALLIUM, 501.0)
        self.assertNotEqual(s1, self.s1)
예제 #9
0
def test_verticallayerssample_eq(sample):
    other = VerticalLayerSample(COPPER, ZINC)
    other.add_layer(GERMANIUM, 100.0)
    other.add_layer(COPPER, 200.0)
    other.depth_m = 400.0
    assert sample == other

    other = VerticalLayerSample(COPPER, ZINC)
    other.add_layer(GERMANIUM, 100.0)
    other.add_layer(COPPER, 200.0)
    assert sample != other

    other = VerticalLayerSample(GERMANIUM, ZINC)
    other.add_layer(GALLIUM, 500.0)
    assert sample != other
예제 #10
0
def sample():
    sample = VerticalLayerSample(COPPER, ZINC)
    sample.add_layer(GERMANIUM, 100.0)
    sample.add_layer(COPPER, 200.0)
    sample.depth_m = 400.0
    return sample