예제 #1
0
        public void canTransformAppraisals()
        {
            var carp1 = new MagicCarpet(6, 0);

            // raw score
            var basic = new BalloonAppraisal(carp1);

            Assert.Equal(0.6f, basic.transformedScore(), 4);

            var clamped = new BalloonAppraisal(carp1).clamp(0.3f);

            Assert.Equal(0.3f, clamped.transformedScore(), 4);

            var scaled = new BalloonAppraisal(carp1).scale(0.1f);

            Assert.Equal(0.06f, scaled.transformedScore(), 4);

            var inverted = new BalloonAppraisal(carp1).inverse();

            Assert.Equal(0.4f, inverted.transformedScore(), 4);

            var negated = new BalloonAppraisal(carp1).negate();

            Assert.Equal(-0.6f, negated.transformedScore(), 4);

            var clampedNegated = new BalloonAppraisal(carp1).clamp(0.3f).negate();

            Assert.Equal(-0.3f, clampedNegated.transformedScore(), 4);
        }
예제 #2
0
        public void SpeedCamelAnswerTest()
        {
            var magicCarpet     = new MagicCarpet();
            var mortar          = new Mortar();
            var broom           = new Broom();
            var camel           = new BactrianCamel();
            var speedCamel      = new SpeedCamel();
            var centaur         = new Centaur();
            var allTerrainBoots = new AllTerrainBoots();

            var vehicles = new List <Vehicle>
            {
                magicCarpet,
                mortar,
                broom,
                camel,
                speedCamel,
                centaur,
                allTerrainBoots
            };

            var race   = new Race <Vehicle>(1000, vehicles);
            var winner = race.RunRace();

            Assert.AreEqual("SpeedCamel", winner.GetType().Name);
        }
예제 #3
0
        public void canScoreConsiderationsWithTransformedAppraisals()
        {
            var carpet      = new MagicCarpet(4, 8);
            var floatConsid = new SumConsideration <MagicCarpet>(() => { });

            floatConsid.addAppraisal(new BalloonAppraisal(carpet));
            floatConsid.addAppraisal(new WeightsAppraisal(carpet).clamp(0.6f).negate());

            var score = floatConsid.score();

            Assert.Equal(-0.2f, score, 4);
        }
예제 #4
0
        public void canScoreConsideration()
        {
            var carpet      = new MagicCarpet(2, 2);
            var floatConsid = new ThresholdSumConsideration <MagicCarpet>(() => { }, 0.5f);

            floatConsid.addAppraisal(new BalloonAppraisal(carpet));
            floatConsid.addAppraisal(new WeightsAppraisal(carpet).negate());

            var score = floatConsid.score();

            Assert.Equal(0f, score, 4);
        }
예제 #5
0
파일: Engine.cs 프로젝트: ilyaShevchuk/OOP
        public void AddTransport(TransportType x)
        {
            ITransport newTransport;

            switch (x)
            {
            case TransportType.Centaur:
                newTransport = new Centaur();
                break;

            case TransportType.TwoCamel:
                newTransport = new TwoCamel();
                break;

            case TransportType.FastCamel:
                newTransport = new FastCamel();
                break;

            case TransportType.Boots:
                newTransport = new Boots();
                break;

            case TransportType.Broom:
                newTransport = new Broom();
                break;

            case TransportType.MagicCarpet:
                newTransport = new MagicCarpet();
                break;

            case TransportType.Mortar:
                newTransport = new Mortar();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(x), x, null);
            }

            try
            {
                _newRace.Add(newTransport);
            }
            catch (WrongParty e)
            {
                Console.WriteLine(e.Message);
                throw new CanNotBeAdd("Add problem");
            }
        }
예제 #6
0
        public void BroomAnswerTest()
        {
            var magicCarpet = new MagicCarpet();
            var mortar      = new Mortar();
            var broom       = new Broom();

            var vehicles = new List <AirVehicle>
            {
                magicCarpet,
                mortar,
                broom
            };

            var race   = new Race <AirVehicle>(1000, vehicles);
            var winner = race.RunRace();

            Assert.AreEqual("Broom", winner.GetType().Name);
        }
예제 #7
0
        public void Test2()
        {
            HarryBroom       harry      = new HarryBroom();
            Yagalimousine    Yaga       = new Yagalimousine();
            MagicCarpet      Alladin    = new MagicCarpet();
            List <Transport> Allmembers = new List <Transport>();

            Allmembers.Add(harry);
            Allmembers.Add(Yaga);
            Allmembers.Add(Alladin);


            TypeRace newRace      = new TypeRace();
            var      StartNewRace = newRace.StartRace(Allmembers, 8000);
            var      Allwinner    = newRace.SpotLand(StartNewRace, Allmembers);

            Assert.AreEqual(368, Allwinner.Item2);
        }
예제 #8
0
        public void MagicCarpet_Test(Double distance, Double time)
        {
            var magicCarpet = new MagicCarpet();

            Assert.That(magicCarpet.Ride(distance), Is.EqualTo(time));
        }