def test_area_circle(self): verts = [] numSegments = 1000 for idx in range(numSegments): theta = 2 * pi * idx / numSegments verts.append((sin(theta), cos(theta))) self.assertAlmostEquals(area(verts), pi, places=4, msg="bad circle area") verts.reverse() self.assertAlmostEquals(area(verts), -pi, places=4, msg="bad clockwise circle area")
def test_constructor(self): verts = [(-1, -2), (-3, +4), (+5, +6), (+7, -8)] block = Block(gold, verts) self.assertEquals(block.verts, verts, "bad verts") self.assertEquals(block.material, gold) expectedMass = gold.density * area(verts) self.assertEquals(block.mass, expectedMass, "mass wrong") self.assertNone(block.shape, "bad shape")
def __init__( self, material, verts, offset=None, center=False): assert_valid(verts) self.verts = verts if center: self._centralize_verts() if offset is not None: self.verts = offset_verts(self.verts, offset) self.material = material self.mass = material.density * area(verts) self.shape = None
def test_area_unit_square(self): verts = [(0, 0), (0, 1), (1, 1), (1, 0)] self.assertEquals(area(verts), 1.0, "bad unit square area") verts.reverse() self.assertEquals(area(verts), -1.0, "bad clockwise unit square area")