Example #1
0
    public void InitializeDebrisArray(RobotEnvironment env)
    {
        environment = env;

        // Get list of debris Transforms
        List <Debris> debrisList = environment.GetDebris();

        // Initialize list of DebrisInfos
        debrisInfos = new List <DebrisInfo>();

        // Add each debris transform and starting values to info list
        foreach (Debris d in debrisList)
        {
            DebrisInfo info = new DebrisInfo();
            info.transform             = d.transform;
            info.lastKnownPosition     = Vector3.zero;
            info.isVisible             = false;
            info.distanceFromRobot     = Vector3.Distance(d.transform.position, transform.position);
            info.lastDistanceFromRobot = info.distanceFromRobot;

            debrisInfos.Add(info);
        }

        UpdateVision();
    }
        public void TestRobotStartingPoint()
        {
            bool             result = false;
            RobotEnvironment environment;

            bool[,] mapdimension;

            int x = 0;
            int y = 0;

            environment  = new  RobotEnvironment(x, y);
            mapdimension = environment.GetMapDim();
            result       = mapdimension[RobotEnvironment.Map + x, RobotEnvironment.Map + y];
            Assert.IsTrue(result);

            x            = -2;
            y            = -4;
            environment  = new RobotEnvironment(x, y);
            mapdimension = environment.GetMapDim();
            result       = mapdimension[RobotEnvironment.Map + x, RobotEnvironment.Map + Math.Abs(y)];
            Assert.IsTrue(result);

            x            = -4;
            y            = 4;
            environment  = new RobotEnvironment(x, y);
            mapdimension = environment.GetMapDim();
            result       = mapdimension[RobotEnvironment.Map + x, RobotEnvironment.Map + Math.Abs(y)];
            Assert.IsFalse(result);
        }
        public void TestUniquePoints()
        {
            RobotEnvironment environment;

            int x = 10;
            int y = 22;

            environment = new RobotEnvironment(x, y);
            int requiredresult = 4;

            char direction = 'E';
            int  steps     = 2;

            environment.StartCleaning(direction, steps);

            direction = 'N';
            steps     = 1;
            environment.StartCleaning(direction, steps);
            Assert.AreEqual(environment.GetUniquePoints(), requiredresult);



            environment    = new RobotEnvironment(x, y);
            requiredresult = 36;

            direction = 'S';
            steps     = 35;
            environment.StartCleaning(direction, steps);

            direction = 'N';
            steps     = 30;
            environment.StartCleaning(direction, steps);
            Assert.AreEqual(environment.GetUniquePoints(), requiredresult);
        }
        public void TestBoundryLimits()
        {
            RobotEnvironment environment;

            int x = 0;
            int y = 0;

            environment = new RobotEnvironment(x, y);

            char direction = 'E';
            int  steps     = RobotEnvironment.Map + 25;
            int  required  = RobotEnvironment.Map + 1;

            environment.StartCleaning(direction, steps);
            int result = environment.GetUniquePoints();

            Assert.AreEqual(result, required);
        }
        public void TestHeadSouth()
        {
            int  x              = 0;
            int  y              = 0;
            int  steps          = 4;
            char direction      = 'S';
            int  requiredresult = 5;

            RobotEnvironment environment = new RobotEnvironment(x, y);

            environment.StartCleaning(direction, steps);
            Assert.AreEqual(environment.GetUniquePoints(), requiredresult);

            x              = 0;
            y              = 0;
            steps          = 2;
            direction      = 'S';
            requiredresult = 1;

            environment = new RobotEnvironment(x, y);
            environment.StartCleaning(direction, steps);
            Assert.AreNotEqual(environment.GetUniquePoints(), requiredresult);
        }