示例#1
0
    def test_get_mass(self):
        chunk = Chunk()
        self.assertEquals(chunk.get_mass(), 0.0, "bad initial mass")

        shard1 = Disc(gold, 5)
        shard2 = Block(gold, self.unitsquare)
        chunk.shards = [shard1, shard2]
        self.assertEquals(chunk.get_mass(), (25 * pi + 1) * gold.density,
            "bad mass")
示例#2
0
    def test_get_moment(self):
        chunk = Chunk()
        self.assertEquals(chunk.get_moment(), 0.0, "bad initial moment")

        shard1 = Disc(gold, 2, (10, 20))
        shard2 = Block(gold, self.unitsquare, (100, 200))
        chunk.shards = [shard1, shard2]

        expected = shard1.get_moment() + shard2.get_moment()
        self.assertEquals(chunk.get_moment(), expected, "bad moment")
示例#3
0
    def test_offset_shards(self):
        chunk = Chunk()
        shard1 = Disc(gold, 5, (10, 20))
        shard2 = Block(gold, self.unitsquare, (30, 40), center=True)
        chunk.shards = [shard1, shard2]

        chunk._offset_shards((+2, -3))

        offset1 = chunk.shards[0].get_centroid()
        self.assertEquals(offset1, (12, 17), "bad shard1 offset")
        offset2 = chunk.shards[1].get_centroid()
        self.assertEquals(offset2, (32, 37), "bad shard2 offset")
示例#4
0
    def test_center_of_gravity(self):
        chunk = Chunk()
        self.assertEquals(chunk._center_of_gravity(), (0, 0), "bad COG0")

        shard1 = Disc(gold, 2, (10, 20))
        chunk = Chunk()
        chunk.shards = (shard1,)
        cog = chunk._center_of_gravity()
        self.assertAlmostEquals(cog[0], 10, msg="bad COG1 x")
        self.assertAlmostEquals(cog[1], 20, msg="bad COG1 y")

        verts = [(99, 49), (99, 51), (101, 51), (101, 49)]
        shard2 = Block(gold, verts)
        chunk.shards = (shard2,)
        self.assertEquals(chunk._center_of_gravity(), (100, 50), "bad COG2")

        chunk.shards = (shard1, shard2)
        totalMass = shard1.mass + shard2.mass
        x = (10 * shard1.mass + 100 * shard2.mass) / totalMass
        y = (20 * shard1.mass + 50 * shard2.mass) / totalMass
        self.assertEquals(chunk._center_of_gravity(), (x, y), "bad COG3")