public void RobotGroupEquality() { var lhs = new RobotGroup(); var rhs = new RobotGroup(); lhs.Equals(rhs).Should().BeTrue(); }
public void AllowRobotGroupToString(string expected, string userAgent, params string[] allowPaths) { var group = new RobotGroup { UserAgent = userAgent, Allow = allowPaths }; group.ToString().Should().Be(expected); }
public void ReturnUserAgent_AndAllow_WhenAny_WihoutDisallow_WhenNone(string userAgent, string allow) { var group = new RobotGroup(userAgent, new[] { allow }, new string[0]); string output = group.ToString(); string[] parts = output.Split(Environment.NewLine); Assert.AreEqual($"User-agent: {group.UserAgent}", parts[0]); Assert.AreEqual($"Allow: {allow}", parts[1]); Assert.AreEqual(2, parts.Length); }
public void ReturnOnlyUserAgent(string userAgent) { var group = new RobotGroup(userAgent); string output = group.ToString(); var parts = output.Split(Environment.NewLine); Assert.AreEqual($"User-agent: {group.UserAgent}", parts[0]); Assert.AreEqual(1, parts.Length); }
public void ReturnUserAgent_AndAllow_WhenAny_AndDisallow_WhenAny(string userAgent, string allow, string disallow) { var group = new RobotGroup(userAgent, new[] { allow }, new[] { disallow }); string output = group.ToString(); var parts = output.Split(Environment.NewLine); Assert.AreEqual($"User-agent: {group.UserAgent}", parts[0]); Assert.AreEqual($"Allow: {allow}", parts[1]); Assert.AreEqual($"Disallow: {disallow}", parts[2]); }
public async Task ReturnEachGroupOnOneLine() { var robotGroup = new RobotGroup("TestAgent"); var otherRobotGroup = new RobotGroup("AnotherTestAgent"); this.robotGroups.Add(robotGroup); this.robotGroups.Add(otherRobotGroup); string output = await this.writer.WriteAsync(); string[] parts = output.Split(Environment.NewLine); Assert.AreEqual(5, parts.Length); Assert.AreEqual(robotGroup.ToString(), parts[1]); Assert.AreEqual(otherRobotGroup.ToString(), parts[3]); }
public void RobotGroupEqualityDisallows(string userAgent, string lhsPaths, string rhsPaths, bool expected) { var lhs = new RobotGroup() { UserAgent = userAgent, Disallow = lhsPaths.Split(";") }; var rhs = new RobotGroup() { UserAgent = userAgent, Disallow = rhsPaths.Split(";") }; lhs.Equals(rhs).Should().Be(expected); }
/// <summary> /// For when we're fetching the details from the database /// </summary> /// <param name="ipAddress"></param> /// <param name="authValue"></param> public Robot(string ipAddress, AuthenticationHeaderValue authValue) { this.ipAddress = ipAddress; this.authValue = authValue; Registers = new List <Register>(new Register[200]); s = new Status(); FireAlarm = new FireAlarms(); Group = new RobotGroup(); schedule = new Scheduler(); Missions = new List <Mission>(new Mission[80]); currentJob = new Job(); for (int i = 0; i < 80; i++) { Missions[i] = new Mission(); } isLive = true; deadRobotAlarmNotTriggered = true; }
/// <summary> /// Initializes the robot fleet, Fleet Manager excluded /// </summary> /// /// <param name="sizeOfFleet">Number of robots in the fleet</param> public Fleet(int sizeOfFleet) { robots = new Robot[sizeOfFleet]; // robotMapping = new int[2] { 4, 2 }; httpResponseTasks = new Task <HttpResponseMessage> [sizeOfFleet]; // Instantiates the group array groups = new short[8] { 0, (short)sizeOfFleet, 0, 0, 0, 0, 0, 0 }; // Initialize the robot group group = new RobotGroup[8]; for (int i = 0; i < 8; i++) { group[i] = new RobotGroup(); } available = new ChargingGroup(2, "FullCharge", "/v2.0.0/charging_groups/2"); busy = new ChargingGroup(3, "EmptyCharge", "/v2.0.0/charging_groups/3"); instantiateRobots(sizeOfFleet); }
/// <summary> /// Generates all the farm stuff /// </summary> private void GenerateFarm() { backgroundName = "Farm"; _workspace = new Workspace(X_MIN, X_MAX, Y_MIN, Y_MAX) { Obstacles = GenerateBaseFarmObstacles() }; _workspace.GenerateEvenGraph((UInt16)(X_RANGE + 1), (UInt16)(Y_RANGE + 1)); List<Node> groundPatrolPath = new List<Node>() { _workspace.GetNode(new HomeworkTwo.Point(18, 10)), _workspace.GetNode(new HomeworkTwo.Point(18, 35)), _workspace.GetNode(new HomeworkTwo.Point(28, 35)), _workspace.GetNode(new HomeworkTwo.Point(28, 2)), _workspace.GetNode(new HomeworkTwo.Point(28, 35)), _workspace.GetNode(new HomeworkTwo.Point(18, 35))}; // Create our robot group with our agents _robotGroup = new RobotGroup( GeneratePursuers(new HomeworkTwo.Point(25, 38), _workspace, _workspace, groundPatrolPath), GenerateTargets(new HomeworkTwo.Point(30, 39), _workspace, _workspace), TIME_STEP_LENGTH, TIME_HORIZON, VISIBLITY_CRITERIA); }
/// <summary> /// Generates all the city stuff /// </summary> private void GenerateCity() { backgroundName = "City"; Obstacles obstacles = new Obstacles(); // Create obstacles for (double i = 3.5; i <= 38; i = i + 5.5) for (double j = 25.5; j <= 38; j = j + 5.5) obstacles.Add(new RectangleObstacle(new HomeworkTwo.Point(j,i), 4, 4)); for (double i = 25.5; i <= 38; i = i + 5.5) for (double j = 3.5; j <= 22; j = j + 5.5) obstacles.Add(new RectangleObstacle(new HomeworkTwo.Point(j,i), 4, 4)); // Set up workspace and generate nodes _workspace = new Workspace(X_MIN, X_MAX, Y_MIN, Y_MAX) { Obstacles = obstacles }; _workspace.GenerateEvenGraph((UInt16)(X_RANGE + 1), (UInt16)(Y_RANGE + 1)); Workspace airWorkspace = new Workspace(X_MIN, X_MAX, Y_MIN, Y_MAX) { }; airWorkspace.GenerateEvenGraph((UInt16)(X_RANGE + 1), (UInt16)(Y_RANGE + 1)); List<Node> groundPatrolPath = new List<Node>() { airWorkspace.GetNode(new HomeworkTwo.Point(1, 20)), airWorkspace.GetNode(new HomeworkTwo.Point(20, 20)), airWorkspace.GetNode(new HomeworkTwo.Point(20, 1)), airWorkspace.GetNode(new HomeworkTwo.Point(1, 1))}; List<Node> airPatrolPath = new List<Node>() { airWorkspace.GetNode(new HomeworkTwo.Point(1, 39)), airWorkspace.GetNode(new HomeworkTwo.Point(39, 39)), airWorkspace.GetNode(new HomeworkTwo.Point(39, 1)), airWorkspace.GetNode(new HomeworkTwo.Point(1, 1))}; // Create our agents List<RobotBase> pursuerRobots = new List<RobotBase>() { new GroundPursuer(GroundPursuerPatrol.TheInstance, new HomeworkTwo.Point(1,1), // location RADIUS, // radius new Vector2D(), // intial velocity MAX_SPEED * .8f, // max speed new Vector2D(), // intial heading MASS, // mass new Vector2D(), // scale TURN_RATE, // turn rate MAX_FORCE, // max force groundPatrolPath, // patrol path _workspace, // traversability map _workspace), // visibility map new AerialPursuer(AerialPursuerPatrol.TheInstance, new HomeworkTwo.Point(1,15), // location RADIUS, // radius new Vector2D(), // intial velocity MAX_SPEED, // max speed new Vector2D(), // intial heading MASS, // mass new Vector2D(), // scale TURN_RATE, // turn rate MAX_FORCE, // max force airPatrolPath, // patrol path airWorkspace, // traversability map airWorkspace) }; // visibility map List<Target> targetRobots = new List<Target>() { new Target(TargetPatrol.TheInstance, new HomeworkTwo.Point(30,39), // location RADIUS, // radius new Vector2D(), // intial velocity MAX_SPEED, // max speed new Vector2D(), // intial heading MASS, // mass new Vector2D(), // scale TURN_RATE, // turn rate MAX_FORCE, // max force new List<Node>(), // patrol path _workspace, // traversability map _workspace)}; // visibility map // Create our robot group with our agents _robotGroup = new RobotGroup(pursuerRobots, targetRobots, TIME_STEP_LENGTH, TIME_HORIZON, VISIBLITY_CRITERIA); }