Example #1
0
    def test_parse(self):
        obj = {
            "id":
            12,
            "tick":
            123,
            "map": {
                "width": 111,
                "height": 222
            },
            "players": [{
                "id":
                1,
                "name":
                "b",
                "total_mass":
                23,
                "isActive":
                True,
                "cells": [{
                    "id": 1,
                    "mass": 2,
                    "radius": 3,
                    "position": {
                        "x": 1,
                        "y": 2
                    },
                    "target": {
                        "x": 3,
                        "y": 4
                    }
                }]
            }],
            "resources": {
                "regular": [{
                    "x": 1,
                    "y": 2
                }],
                "silver": [{
                    "x": 3,
                    "y": 4
                }],
                "gold": [{
                    "x": 5,
                    "y": 6
                }]
            },
            "viruses": [{
                "mass": 2,
                "position": {
                    "x": 1,
                    "y": 2
                }
            }]
        }

        game = Game.parse(obj, 1)

        self.assertEqual(12, game.id)
        self.assertEqual(123, game.tick)

        self.assertEqual(111, game.map.width)
        self.assertEqual(222, game.map.height)

        self.assertEqual(1, len(game.players))
        player = game.players[0]
        self.assertEqual(1, player.id)
        self.assertEqual("b", player.name)
        self.assertEqual(23, player.total_mass)
        self.assertEqual(True, player.active)

        self.assertEqual(1, len(player.cells))
        cell = player.cells[0]
        self.assertEqual(1, cell.id)
        self.assertEqual(2, cell.mass)
        self.assertEqual(3, cell.radius)
        self.assertTrue(cell.position.almost_equals(Vec2(1, 2)))
        self.assertTrue(cell.target.almost_equals(Vec2(3, 4)))

        self.assertEqual(1, len(game.resources.regular))
        self.assertTrue(game.resources.regular[0].almost_equals(Vec2(1, 2)))
        self.assertEqual(1, len(game.resources.silver))
        self.assertTrue(game.resources.silver[0].almost_equals(Vec2(3, 4)))
        self.assertEqual(1, len(game.resources.gold))
        self.assertTrue(game.resources.gold[0].almost_equals(Vec2(5, 6)))

        self.assertEqual(1, len(game.viruses))
        virus = game.viruses[0]
        self.assertEqual(2, virus.mass)
        self.assertTrue(virus.position.almost_equals(Vec2(1, 2)))