Exemplo n.º 1
0
 public void TestStrategyWithObstacles()
 {
     var planB = new Strategy()
         .MoveTo(300, 300)
         .MoveTo(400, 400)
         .StopAt(500, 500, 90)
         .End();
     var strategy = new Strategy(new StrategyTesterTranslator())
         .MoveTo(100, 100)
         .MoveTo(200, 100)
         .Else(planB)
         .MoveTo(200, 200)
         .StopAt(100, 200, 0)
         .End();
     var start = new StrategyTesterReport(0, new PointD(20, 20), true);
     var environment = new World(start.Coords, 0);
     environment.Objects.Add(new Polygon(new Point(150, 90), new Size(10, 20)));
     TestStrategy(
         strategy,
         environment,
         start,
         new List<PointD>
         {
             new PointD(100, 100),
             new PointD(100, 100),
             new PointD(300, 300),
             new PointD(400, 400),
             new PointD(500, 500)
         },
         new List<double>
         {
             Math.PI * 2 - Math.PI / 4,
             Math.PI * 2 - Math.PI / 4,
             Math.PI * 2 - Math.PI / 4,
             Math.PI * 2 - Math.PI / 4,
             Math.PI / 2
         },
         new List<bool> { true, false, true, true, true }
     );
     environment = new World(start.Coords, 0);
     environment.Objects.Add(new Polygon(new Point(182, 140), new Size(30, 10)));
     strategy.GoToPreviousState(6);
     TestStrategy(
         strategy,
         environment,
         start,
         new List<PointD>
         {
             new PointD(100, 100),
             new PointD(200, 100),
             new PointD(200, 100),
             new PointD(300, 300),
             new PointD(400, 400),
             new PointD(500, 500)
         },
         new List<double>
         {
             Math.PI * 2 - Math.PI / 4,
             0,
             0,
             AngleCaculator.CalculateAngle(new PointD(200, 100), new PointD(300, 300)),
             Math.PI * 2 - Math.PI / 4,
             Math.PI / 2
         },
         new List<bool> { true, true, false, true, true, true }
     );
 }