Esempio n. 1
0
        public void TestTryMove()
        {
            MapContext mapContext = new MapContext(MapBuilder.Build("Fixtures/map.in"));

            Zeebot zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = Math.PI;
            mapContext.Zeebots[zeebot].Location = new Point(3.5, 6.5);

            double success;
            bool result = mapContext.TryMove(zeebot, 2.0, out success);

            Assert.Equals(false, result);
            Assert.Less(success, 0.5, Util.Epsilon);

            zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = Math.PI / 2;
            mapContext.Zeebots[zeebot].Location = new Point(6.5, 3.5);

            result = mapContext.TryMove(zeebot, 4.0, out success);

            Assert.Equals(true, result);
            Assert.Less(success, 4.01, Util.Epsilon);

            zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = 1.50;
            mapContext.Zeebots[zeebot].Location = new Point(1.60, 9.96);

            result = mapContext.TryMove(zeebot, 0.7, out success);

            Assert.Equals(false, result);
            Assert.Less(success, 0.04, 0.00);
        }
Esempio n. 2
0
        public void TestQueryLaser()
        {
            MapContext mapContext = new MapContext(MapBuilder.Build("Fixtures/map.in"));
            double result;

            Zeebot zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = Math.PI;
            mapContext.Zeebots[zeebot].Location = new Point(3.5, 6.5);
            result = mapContext.QueryLaser(zeebot);
            Assert.Equals(result, 0.5, Util.Epsilon);

            zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = Math.PI / 2;
            mapContext.Zeebots[zeebot].Location = new Point(6.5, 4.0);
            result = mapContext.QueryLaser(zeebot);
            Assert.Equals(result, 6.00, Util.Epsilon);

            zeebot = new Zeebot();
            mapContext.AddZeebot(zeebot);
            mapContext.Zeebots[zeebot].Facing = Math.PI / 2;
            mapContext.Zeebots[zeebot].Location = new Point(9.5, 4.0);
            result = mapContext.QueryLaser(zeebot);
            Assert.Equals(double.NaN, result);
        }
Esempio n. 3
0
        public void Test100Adds()
        {
            MapContext mapContext = new MapContext(MapBuilder.Build("Fixtures/map.in"));

            DateTime start = DateTime.Now;

            for (int i = 0; i < 100; i++)
                mapContext.AddZeebot(new Zeebot());

            TimeSpan span = DateTime.Now.Subtract(start);
            double ms = span.TotalMilliseconds;
            Assert.Less(ms, 100.0, 0.0);
        }
Esempio n. 4
0
        public ZeebotSystem(MapContext mapContext, int nrZeebots)
        {
            this.mapContext = mapContext;
            coordinateSystem = new CoordinateSystem();
            zeebots = new List<Zeebot>(nrZeebots);
            for (int i = 0; i < nrZeebots; i++)
            {
                Zeebot zeebot = new Zeebot();
                zeebots.Add(zeebot);

                // Add to real map.
                zeebot.MapContext = mapContext;
                mapContext.AddZeebot(zeebot);

                // Add to calculated map.
                zeebot.CoordinateSystem = coordinateSystem;
                coordinateSystem.AddZeebot(zeebot);
            }
        }