def test_cube(self):
        logging.debug("")
        logging.debug("test_cube")

        cube = create_cube((30, 20, 10), 5.0, 4.0, 3.0)

        # I face.
        surfaces = (("xyzzy", 2, 2, 0, -1, 0, -1),)
        variables = (("area", "inch**2"),)
        metrics = surface_probe(cube, surfaces, variables)
        area = metrics[0]
        logging.debug("area = %g (%g ft)", area, area / 144.0)
        self.assertEqual(area, 4.0 * 3.0 * 144.0)

        # J face.
        surfaces = (("xyzzy", 0, -1, 2, 2, 0, -1),)
        variables = (("area", "inch**2"),)
        metrics = surface_probe(cube, surfaces, variables)
        area = metrics[0]
        logging.debug("area = %g (%g ft)", area, area / 144.0)
        self.assertEqual(area, 5.0 * 3.0 * 144.0)

        # K face.
        surfaces = (("xyzzy", 0, -1, 0, -1, 2, 2),)
        variables = (("area", "inch**2"),)
        metrics = surface_probe(cube, surfaces, variables)
        area = metrics[0]
        logging.debug("area = %g (%g ft)", area, area / 144.0)
        self.assertEqual(area, 5.0 * 4.0 * 144.0)
Beispiel #2
0
    def test_cube(self):
        logging.debug('')
        logging.debug('test_cube')

        cube = create_cube((41, 17, 9), 5., 4., 3.)

        # I face.
        regions = (('xyzzy', 2, 2, 0, -1, 0, -1),)
        variables = (('area', 'inch**2'), ('density', None))
        area, density = mesh_probe(cube, regions, variables)
        logging.debug('I area = %g (%g ft**2)', area, area / 144.)
        logging.debug('I density = %g', density)
        self.assertEqual(area, 4. * 3. * 144.)
        self.assertEqual(density, 0.25)

        surface = cube.extract([(2, 2, 0, -1, 0, -1)])
        surface.demote()
        regions = (('xyzzy', 0, -1, 0, -1),)
        area, density = mesh_probe(surface, regions, variables)
        self.assertEqual(area, 4. * 3. * 144.)
        self.assertEqual(density, 0.25)

        # J face.
        regions = (('xyzzy', 0, -1, 2, 2, 0, -1),)
        area, density = mesh_probe(cube, regions, variables)
        logging.debug('J area = %g (%g ft**2)', area, area / 144.)
        logging.debug('J density = %g', density)
        self.assertEqual(area, 5. * 3. * 144.)
        self.assertEqual(density, 2.5)

        surface = cube.extract([(0, -1, 2, 2, 0, -1)])
        surface.demote()
        regions = (('xyzzy', 0, -1, 0, -1),)
        area, density = mesh_probe(surface, regions, variables)
        self.assertEqual(area, 5. * 3. * 144.)
        self.assertEqual(density, 2.5)

        # K face.
        regions = (('xyzzy', 0, -1, 0, -1, 2, 2),)
        area, density = mesh_probe(cube, regions, variables)
        logging.debug('K area = %g (%g ft**2)', area, area / 144.)
        logging.debug('K density = %g', density)
        self.assertEqual(area, 5. * 4. * 144.)
        self.assertEqual(density, 2.5)

        surface = cube.extract([(0, -1, 0, -1, 2, 2)])
        surface.demote()
        regions = (('xyzzy', 0, -1, 0, -1),)
        area, density = mesh_probe(surface, regions, variables)
        self.assertEqual(area, 5. * 4. * 144.)
        self.assertEqual(density, 2.5)

        # 1D curve.
        variables = (('length', 'inch'), ('density', None))
        curve = surface.extract([(0, -1, 5, 5)])
        curve.demote()
        regions = (('xyzzy', 0, -1),)
        length, density = mesh_probe(curve, regions, variables)
        # It seems turning the value into a PhysicalQuantity isn't exact.
        assert_rel_error(self, length, 5. * 12., 0.00000001)
        self.assertEqual(density, 2.5)

        # 2D curves.
        regions = (('xyzzy', 0, -1, 5, 5),)
        length, density = mesh_probe(surface, regions, variables)
        assert_rel_error(self, length, 5. * 12., 0.00000001)
        self.assertEqual(density, 2.5)

        regions = (('xyzzy', 5, 5, 0, -1),)
        length, density = mesh_probe(surface, regions, variables)
        assert_rel_error(self, length, 4. * 12., 0.00000001)
        self.assertEqual(density, 0.625)

        # 3D curves.
        regions = (('xyzzy', 0, -1, 5, 5, 5, 5),)
        length, density = mesh_probe(cube, regions, variables)
        assert_rel_error(self, length, 5. * 12., 0.00000001)
        self.assertEqual(density, 2.5)

        regions = (('xyzzy', 5, 5, 0, -1, 5, 5),)
        length, density = mesh_probe(cube, regions, variables)
        assert_rel_error(self, length, 4. * 12., 0.00000001)
        self.assertEqual(density, 0.625)

        regions = (('xyzzy', 5, 5, 5, 5, 0, -1),)
        length, density = mesh_probe(cube, regions, variables)
        assert_rel_error(self, length, 3. * 12., 0.00000001)
        self.assertEqual(density, 0.625)