public void TestDoorDetectorIsSavedInProperty() { MockDoorDetector doorDetector = new MockDoorDetector(null); DoorOrientationNavigationStrategy doorOrientor = new DoorOrientationNavigationStrategy(doorDetector); Assert.ReferenceEquals(doorDetector, doorOrientor.DoorDetector); }
public void TestNearestTargetDoorIsSelected() { DetectedDoor door1 = new DetectedDoor(new System.Drawing.Rectangle(), DetectedDoor.DetectionConfidence.HIGH, 0, 50); DetectedDoor door2 = new DetectedDoor(new System.Drawing.Rectangle(), DetectedDoor.DetectionConfidence.HIGH, 0, 25); List <DetectedDoor> doors = new List <DetectedDoor>(); doors.Add(door1); doors.Add(door2); DoorOrientationNavigationStrategy strategy = new DoorOrientationNavigationStrategy(new MockDoorDetector(null)); PrivateObject privateAccessor = new PrivateObject(strategy); DetectedDoor targetDoor = (DetectedDoor)privateAccessor.Invoke("GetTargetDoor", doors); // door2 has the smallest estimated distance therefore it should be selected as the target door Assert.AreEqual <DetectedDoor>(door2, targetDoor); }
public void TestDoorNavigatorNavigatesTowardsDoor() { Bitmap image = new Bitmap("ObjectDetection\\Images\\door3.JPG"); MockFrame frame = new MockFrame(image); MockImageStream stream = new MockImageStream(frame); ColorBasedDoorDetector doorDetector = new ColorBasedDoorDetector(); DoorOrientationNavigationStrategy navigator = new DoorOrientationNavigationStrategy(doorDetector); doorDetector.RunAsync(stream); // Sleep for 1 second to ensure that the door detector has time to recognize the door Thread.Sleep(1000); Vector navigatorDirection = navigator.GetDirection(); Vector expectedDirection = new Vector(0.23776, 0.7623); Assert.AreEqual <Vector>(expectedDirection, navigatorDirection); doorDetector.CancelAsync(); }