Esempio n. 1
0
        static void Main(string[] args)
        {
            //6,6 as dimensions because end position is 5,1 and as array is 0 based it has to be 6
            LawnField field = new LawnField(6, 6);

            Position mower1Position = new Position(new Ubication(1, 2), new Direction("N"));
            Position mower2Position = new Position(new Ubication(3, 3), new Direction("E"));

            InstructionList mower1ListOfInstructions = new InstructionList("LMLMLMLMM");
            InstructionList mower2ListOfInstructions = new InstructionList("MMRMMRMRRM");

            Mower mower1 = new Mower(mower1Position, mower1ListOfInstructions);
            Mower mower2 = new Mower(mower2Position, mower2ListOfInstructions);

            mower1.NewFieldToBeOperated(field);
            mower2.NewFieldToBeOperated(field);

            mower1.OperateField();
            Console.WriteLine(mower1.GetPosition());

            ACMEMower ACMEmower = new Mower();

            ACMEmower.SaySomething();

            mower1.AskTheField();

            mower2.OperateField();
            Console.WriteLine(mower2.GetPosition());
            mower1.SaySomething();
            mower2.AskTheField();


            Console.Read();
        }
Esempio n. 2
0
        private Mower CreateNewMower(Garden garden, int startX, int startY, Orientation orientation)
        {
            var newMower = new Mower(garden);

            newMower.Start(new Position(new Coordinates(startX, startY), orientation));
            return(newMower);
        }
Esempio n. 3
0
        public void Mower_ToString_ShouldReturnCorrectOutput()
        {
            Mower  mower = new Mower("Husquarna 350", 10.5, 1.7, 100.55);
            string text  = mower.ToString();

            Assert.AreEqual("Ich heiße Husquarna 350 und kann maximal 100,55 m² Rasen mit 1,7 km/H mähen", mower.ToString());
        }
Esempio n. 4
0
        public static INavigator Create(Mower mower, char instruction)
        {
            switch (instruction)
            {
            case 'L':
            {
                return(new HeadingChangeLeft(mower));
            }

            case 'R':
            {
                return(new HeadingChangeRight(mower));
            }

            case 'M':
            {
                return(new MoveForward(mower));
            }

            default:
            {
                throw new Exception("Unknown instruction");
            }
            }
        }
Esempio n. 5
0
        private Mower StartMower(int gardenLength, int gardenWidth, int startX, int startY, Orientation orientation)
        {
            var mower = new Mower(new Garden(gardenLength, gardenWidth));

            mower.Start(new Position(new Coordinates(startX, startY), orientation));
            return(mower);
        }
Esempio n. 6
0
        public static IMover Create(Mower mower)
        {
            switch (mower.Position.Heading)
            {
            case "N":
            {
                return(new MoveNorth(mower));
            }

            case "E":
            {
                return(new MoveEast(mower));
            }

            case "S":
            {
                return(new MoveSouth(mower));
            }

            case "W":
            {
                return(new MoveWest(mower));
            }

            default:
            {
                throw new Exception("Unknown heading");
            }
            }
        }
Esempio n. 7
0
        public void Input_And_Output()
        {
            string input = @"5 5
1 2 N
LMLMLMLMM
3 3 E
MMRMMRMRRM";

            string[] inputLines = input.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

            IList <Mower> mowers = new List <Mower>();

            Lawn lawn = Lawn.Create(inputLines[0]);

            RemoteControl remoteControl = new RemoteControl();

            for (int i = 1; i < inputLines.Length - 1; i += 2)
            {
                Mower mower = new Mower(lawn.Border);
                mower.Deploy(inputLines[i]);

                remoteControl.ConnectMower(mower);
                remoteControl.Send(inputLines[i + 1]);

                mowers.Add(mower);
            }

            Assert.That(mowers.Count, Is.EqualTo(2));
            Assert.That(mowers[0].Status, Is.EqualTo("1 3 N"));
            Assert.That(mowers[1].Status, Is.EqualTo("5 1 E"));
        }
Esempio n. 8
0
        public void ShouldMoveForwardOffCommand()
        {
            var mower = new Mower(0, 0, 0);

            mower.RunCommand("MM");

            Assert.That(mower.Position.Y, Is.EqualTo(2));
        }
Esempio n. 9
0
        public void ShouldMoveRightOffCommand()
        {
            var mower = new Mower(0, 0, 0);

            mower.RunCommand("RRR");

            Assert.That(mower.Direction, Is.EqualTo(3));
        }
Esempio n. 10
0
        public void ShouldMoveLeftOffCommand()
        {
            var mower = new Mower(0, 0, 0);

            mower.RunCommand("LL");

            Assert.That(mower.Direction, Is.EqualTo(2));
        }
Esempio n. 11
0
        public void Move_ValidMoveOneSpace_MowerMovesOneSpace(Heading heading, string expected)
        {
            var mower = new Mower(new Point(3,3), heading, new Point(5,5));

            var result = mower.Move("M");

            Assert.AreEqual(expected, result);
        }
Esempio n. 12
0
        public void Move_InvalidMoveOneSpaceValidTurn_MowerDoesnNotMoveButDoesTurn(int spx, int spy, Heading heading, int gbx, int gby, string instructions, string expected)
        {
            var mower = new Mower(new Point(spx,spy), heading, new Point(gbx,gby));

            var result = mower.Move(instructions);

            Assert.AreEqual(expected, result);
        }
Esempio n. 13
0
        public void Mower_Instantiate_IncorrectPower_PropertiesShouldBeCorrect()
        {
            Mower mower = new Mower("Husquarna 350", -34, 1.7, 100.55);

            Assert.AreEqual("Husquarna 350", mower.Name);
            Assert.AreEqual(0, mower.Power, 0.001);
            Assert.AreEqual(1.7, mower.MaxSpeed, 0.001);
            Assert.AreEqual(100.55, mower.MaxArea, 0.001);
        }
Esempio n. 14
0
        public void ShouldMoveNorth()
        {
            var mower = new Mower(0, 0, 0);

            mower.MoveForward();

            Assert.That(mower.Position.Y, Is.EqualTo(1));
            Assert.That(mower.Position.X, Is.EqualTo(0));
        }
Esempio n. 15
0
        public void When_Mower_Position_Is_Valid_Then_Mower_Is_Deployed()
        {
            Border border = new Border(5, 5);
            Mower  mower  = new Mower(border);

            mower.Deploy("1 2 N");

            Assert.IsTrue(mower.IsDeployed);
        }
Esempio n. 16
0
        public void setMowerPosition(Mower mower)
        {
            int mowerPositionY = mower.position.getUbication().GetUbicationY();
            int mowerPositionX = mower.position.getUbication().GetUbicationX();

            ClearMowerPosition();

            field[mowerPositionY, mowerPositionX] = 1;
        }
Esempio n. 17
0
        public void ShouldRunFullCommand1()
        {
            var mower = new Mower(3, 3, 1);

            mower.RunCommand("MMRMMRMRRM");

            Assert.That(mower.Position.X, Is.EqualTo(5));
            Assert.That(mower.Position.Y, Is.EqualTo(1));
            Assert.That(mower.Direction, Is.EqualTo(1));
        }
Esempio n. 18
0
        public void ShouldRunFullCommand()
        {
            var mower = new Mower(1, 2, 0);

            mower.RunCommand("LMLMLMLMM");

            Assert.That(mower.Position.X, Is.EqualTo(1));
            Assert.That(mower.Position.Y, Is.EqualTo(3));
            Assert.That(mower.Direction, Is.EqualTo(0));
        }
Esempio n. 19
0
 /// <summary>
 /// Move mower right
 /// </summary>
 /// <param name="mower"></param>
 internal static void MoveRight(this Mower mower)
 {
     if (mower.Direction == 3)
     {
         mower.Direction = 0;
     }
     else
     {
         mower.Direction += 1;
     }
 }
Esempio n. 20
0
 /// <summary>
 /// Move mower left
 /// </summary>
 /// <param name="mower"></param>
 internal static void MoveLeft(this Mower mower)
 {
     if (mower.Direction == 0)
     {
         mower.Direction = 3;
     }
     else
     {
         mower.Direction -= 1;
     }
 }
Esempio n. 21
0
        public void ShouldMoveWest()
        {
            var mower = new Mower(1, 1, 0);

            mower.MoveRight();
            mower.MoveRight();
            mower.MoveRight();
            mower.MoveForward();

            Assert.That(mower.Position.Y, Is.EqualTo(1));
            Assert.That(mower.Position.X, Is.EqualTo(0));
        }
Esempio n. 22
0
        public void Robots_GetAt_NegativeIndex_ShouldReturnNull()
        {
            Robots robots = new Robots();
            Drone  dron   = new Drone("Drone1", 10.5, 100.5);
            Mower  mower  = new Mower("Mower", 6.3, 1.2, 250.22);
            bool   ok     = robots.AddRobot(dron);

            ok = robots.AddRobot(mower);
            Robot robot = robots.GetAt(-1);

            Assert.IsNull(robot, "Roboter an negativem Index sollte null sein.");
        }
Esempio n. 23
0
        public void ShouldMoveLeft()
        {
            var mower = new Mower(0, 0, 0);

            mower.MoveLeft();
            Assert.That(mower.Direction, Is.EqualTo(3));
            mower.MoveLeft();
            Assert.That(mower.Direction, Is.EqualTo(2));
            mower.MoveLeft();
            Assert.That(mower.Direction, Is.EqualTo(1));
            mower.MoveLeft();
            Assert.That(mower.Direction, Is.EqualTo(0));
        }
Esempio n. 24
0
        public void Robots_Filter_NotMatchingFilter_ShouldReturnNone()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.3, 1.2, 250);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            Robot[] filteredRobots = robots.GetByFilter("Terminator");
            Assert.AreEqual(0, filteredRobots.Length, "Länge des Arrays stimmt nicht");
        }
Esempio n. 25
0
        public void Robots_Add_WithSameName_ShouldNotAddDuplicate()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.3, 1.2, 250);
            Mower        mower2 = new Mower("Mower", 4.3, 1.7, 200);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            ok = robots.AddRobot(mower2);
            Assert.IsFalse(ok, "Der Name Mower existiert bereits");
        }
Esempio n. 26
0
        public void Robots_Filter_UpperCase_ShouldReturnCorrectResult()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.3, 1.2, 250);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            Robot[] filteredRobots = robots.GetByFilter("MOWER");
            Assert.AreEqual(1, filteredRobots.Length, "Länge des Arrays stimmt nicht");
            Assert.AreEqual("Mower", filteredRobots[0].Name, "Name des gefilterten Roboters stimmt nicht");
        }
Esempio n. 27
0
        public void Robots_OperatorPlus_OneListEmpty_ShouldBeCorrectUnion()
        {
            Robots robots1 = new Robots();
            Robots robots2 = new Robots();
            Drone  dron    = new Drone("Drone", 10.5, 100.5);
            Mower  mower   = new Mower("Mower", 6.3, 1.2, 250);
            bool   ok      = robots1.AddRobot(mower);

            ok = robots1.AddRobot(dron);
            Robots union = robots1 + robots2;

            Assert.AreEqual(2, union.Count, "Anzahl Roboter nicht korrekt.");
            Assert.AreEqual("Drone", union.GetAt(0).Name, "Roboter an Position 1 wurde falsch zurückgegeben");
            Assert.AreEqual("Mower", union.GetAt(1).Name, "Roboter an Position 3 wurde falsch zurückgegeben");
        }
Esempio n. 28
0
        public void Robots_Add_TwoRobotsInWrongOrder_ShouldBeCorrectOrder()
        {
            Robots robots = new Robots();
            Drone  dron   = new Drone("Drone", 10.5, 100.5);
            Mower  mower  = new Mower("Mower", 6.3, 1.2, 250);
            bool   ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            Assert.IsTrue(ok);
            Robot robot = robots.GetAt(0);

            Assert.AreEqual("Drone", robot.Name, "Roboter an Position 0 wurde falsch zurückgegeben");
            robot = robots.GetAt(1);
            Assert.AreEqual("Mower", robot.Name, "Roboter an Position 1 wurde falsch zurückgegeben");
        }
Esempio n. 29
0
        public void Robots_Filter_EmptyFilter_ShouldReturnAll()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.3, 1.2, 250);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            Robot[] filteredRobots = robots.GetByFilter("");
            Assert.AreEqual(3, filteredRobots.Length, "Länge des Arrays stimmt nicht");
            Assert.AreEqual("FunCar", filteredRobots[0].Name, "Roboter an Position 0 wurde falsch zurückgegeben");
            Assert.AreEqual("Drone", filteredRobots[1].Name, "Roboter an Position 1 wurde falsch zurückgegeben");
            Assert.AreEqual("Mower", filteredRobots[2].Name, "Roboter an Position 2 wurde falsch zurückgegeben");
        }
Esempio n. 30
0
        public void Robots_GetSumOfPower_FourRobots_ShouldReturnCorrectPower()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone1", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.5, 1.2, 250);
            Mower        mower2 = new Mower("Mower2", 8.3, 1.2, 255.5);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            ok = robots.AddRobot(mower2);
            double sumOfPower = robots.GetSumOfPower();

            Assert.AreEqual(58.8, sumOfPower, 0.001, "Summe der Leistung stimmt nicht");
        }
Esempio n. 31
0
        public void Robots_GetSumOfArea_FourRobots_ShouldReturnCorrectArea()
        {
            Robots       robots = new Robots();
            Drone        dron   = new Drone("Drone1", 10.5, 100.5);
            Mower        mower  = new Mower("Mower", 6.3, 1.2, 250.22);
            Mower        mower2 = new Mower("Mower2", 8.3, 1.2, 255.5);
            DrivingRobot funCar = new DrivingRobot("FunCar", 33.5, 55.5);
            bool         ok     = robots.AddRobot(mower);

            ok = robots.AddRobot(dron);
            ok = robots.AddRobot(funCar);
            ok = robots.AddRobot(mower2);
            double sumOfArea = robots.GetSumOfArea();

            Assert.AreEqual(505.72, sumOfArea, 0.001, "Summe der mähbaren Fläche stimmt nicht");
        }
Esempio n. 32
0
        public bool CreateMower(MowerCreate model)
        {
            var entity =
                new Mower()
            {
                LandscapeId  = _userId,
                MowerName    = model.MowerName,
                MowerCity    = model.MowerCity,
                MowerRate    = model.MowerRate,
                MowerService = model.MowerService
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.Mowers.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }