Exemplo n.º 1
0
        public void GetMovementCost_ShouldReturnCostFromAToB()
        {
            var ground = new TerrainType(1, "Ground");
            var water  = new TerrainType(2, "Water");
            var air    = new TerrainType(3, "Air");

            var walkingType  = new MovementType(1, "Walking");
            var swimmingType = new MovementType(2, "Swimming");
            var flyingType   = new MovementType(3, "Flying");

            var movementTypes = new MovementTypes(new[]
            {
                ground, water, air
            }, new Dictionary <MovementType, Dictionary <TerrainType, int> >
            {
                [walkingType] = new Dictionary <TerrainType, int>
                {
                    [ground] = 1,
                    [water]  = 2,
                    [air]    = 999
                },
                [swimmingType] = new Dictionary <TerrainType, int>
                {
                    [ground] = 2,
                    [water]  = 1,
                    [air]    = 999
                },
                [flyingType] = new Dictionary <TerrainType, int>
                {
                    [ground] = 1,
                    [water]  = 1,
                    [air]    = 1
                }
            });

            Assert.That(movementTypes.GetMovementCost(walkingType, ground), Is.EqualTo(1));
            Assert.That(movementTypes.GetMovementCost(swimmingType, water), Is.EqualTo(1));
            Assert.That(movementTypes.GetMovementCost(walkingType, water), Is.EqualTo(2));
            Assert.That(movementTypes.GetMovementCost(swimmingType, ground), Is.EqualTo(2));
            Assert.That(movementTypes.GetMovementCost(walkingType, air), Is.EqualTo(999));
            Assert.That(movementTypes.GetMovementCost(flyingType, ground), Is.EqualTo(1));
        }