public void TestDetermineNextPoint()
        {
            //Arrange
            var unitOfWork = new UnitOfWork(new DtsContext());
            var droneOne   = new Drone
            {
                CurrentPoint = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("B19C9EF8-3CF5-4A85-A0F7-4D516E9FD53C"))),
                TargetPoint  = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A")))
            };
            var xPointOne = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(droneOne.CurrentPoint.XNeighbourId));
            var zPointOne = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(droneOne.CurrentPoint.ZNeighbourId));

            var droneTwo = new Drone
            {
                CurrentPoint = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("EAFB1408-C53F-449D-9856-4B18BF32B861"))),
                TargetPoint  = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A")))
            };
            var xPointTwo = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(droneTwo.CurrentPoint.XNeighbourId));
            var zPointTwo = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(droneTwo.CurrentPoint.ZNeighbourId));

            unitOfWork.Dispose();

            //Act
            var resultOne = NavigationLogic.DetermineNextPoint(droneOne, xPointOne, zPointOne);
            var resultTwo = NavigationLogic.DetermineNextPoint(droneTwo, xPointTwo, zPointTwo);

            //Assert
            Assert.IsNotNull(resultOne, "A navigation point was not selected for result one");
            Assert.AreEqual(xPointOne, resultOne, "The x coordinate was selected");
            Assert.IsNotNull(resultTwo, "A navigation point was not selected for result two");
            Assert.AreEqual(zPointTwo, resultTwo, "The z coordinate was selected");
        }
        public void TestIsDistanceToGoal()
        {
            //Arrange
            var unitOfWork = new UnitOfWork(new DtsContext());
            var target     = unitOfWork.NavigationPoints.GetSingle(Guid.Parse("FC284FE6-73E1-42AC-9409-6267F4BAB607"));
            var drone      = new Drone
            {
                CurrentPoint = new NavigationPoint
                {
                    Id           = target.Id,
                    XNeighbourId = target.XNeighbourId,
                    ZNeighbourId = target.ZNeighbourId
                },
                TargetPoint = new NavigationPoint
                {
                    Id = Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A"),
                }
            };

            unitOfWork.Dispose();

            //Act
            var result = NavigationLogic.IsDistanceToGoal(drone);

            //Assert
            Assert.True(result, "The result came out false");
        }
示例#3
0
    protected void btnBack_Click(object sender, EventArgs e)
    {
        MemberSuiteObject mso;

        using (var api = GetServiceAPIProxy())
            mso = DocumentsLogic.GetFileCabinetContext(api, targetFolder);

        if (mso == null)
        {
            GoTo("/documents/DigitalLibrary.aspx");
        }

        GoTo(NavigationLogic.GetUrlFor(mso));
    }
        public void TestCheckNavigationPoints()
        {
            //Arrange
            var testPointOne = Guid.Parse("B19C9EF8-3CF5-4A85-A0F7-4D516E9FD53C");
            var testPointTwo = Guid.Parse("11111111-AAAA-0B0B-B605-F144357EAA00");

            //Act
            var testPointOneCheck = NavigationLogic.CheckNavigationPoint(testPointOne);
            var testPointTwoCheck = NavigationLogic.CheckNavigationPoint(testPointTwo);

            //Assert
            Assert.True(testPointOneCheck, "The Id was not found");
            Assert.False(testPointTwoCheck, "The Id was found when it should not have");
        }
示例#5
0
    public static void SetupContextAndParentFolders(IConciergeAPIService api, msFileFolder targetFolder, HyperLink hlFolderContext,
                                                    FolderInfo foldersAndFiles, Repeater rptParentFolders, bool includeTargetFolder)
    {
        var mso = GetFileCabinetContext(api, targetFolder);

        if (mso != null)
        {
            hlFolderContext.Text        = mso.SafeGetValue <string>("Name");
            hlFolderContext.NavigateUrl = NavigationLogic.GetUrlFor(mso);
        }
        else
        {
            hlFolderContext.Text        = "My Digital Library";
            hlFolderContext.NavigateUrl = "DigitalLibrary.aspx";
        }

        // now, the parent folders
        List <PartialFolderInfo> parentFolders = new List <PartialFolderInfo>();

        if (foldersAndFiles.ParentFolders != null)
        {
            // let's go through the parent folders and find the first one we have access to - and then
            // we'll start with that
            // we don't want to start with the root, because we may not have access
            bool accessEstablished = false;
            foreach (var folder in foldersAndFiles.ParentFolders)
            {
                if (!accessEstablished &&
                    !CanAccess(targetFolder.FileCabinet, folder.FolderID, ConciergeAPI.CurrentEntity.ID))
                {
                    // do we have access?
                    continue;             // no access yet
                }
                accessEstablished = true; // ok, we can access from now on
                parentFolders.Add(folder);
            }
        }

        if (includeTargetFolder)
        {
            parentFolders.Add(new PartialFolderInfo {
                FolderID = targetFolder.ID, FolderName = targetFolder.Name
            });
        }

        // bind
        rptParentFolders.DataSource = parentFolders;
        rptParentFolders.DataBind();
    }
        public void TestGenerateRoute()
        {
            //Arrange
            var unitOfWork = new UnitOfWork(new DtsContext());
            var drone      = new Drone
            {
                TargetPoint  = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A"))),
                CurrentPoint = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("161E22AE-B152-4D7F-AC68-58201EF025DA")))
            };
            var route = new List <NavigationPoint>
            {
                drone.CurrentPoint,
                drone.TargetPoint
            };
            var droneRandom = new Drone
            {
                TargetPoint  = new NavigationPoint(unitOfWork.NavigationPoints.GetRandom(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A"))),
                CurrentPoint = new NavigationPoint(unitOfWork.NavigationPoints.GetRandom(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A"))),
            };
            var routeRandom = new List <NavigationPoint>
            {
                droneRandom.CurrentPoint,
                droneRandom.TargetPoint
            };

            File.AppendAllText(
                @"C:\Users\Jack\Documents\Fourth Year\Fourth Year Project\2017-ca400-murpj238\docs\blog\RandomNavigationPoints.csv",
                "TestGenerateNavigationPoint," + droneRandom.TargetPoint.Id + "," + droneRandom.TargetPoint.XPosition + "," +
                droneRandom.TargetPoint.ZPosition + "," + droneRandom.TargetPoint.Id + "," +
                droneRandom.CurrentPoint.XPosition + "," + droneRandom.CurrentPoint.ZPosition + "\n");
            //Act
            var result = NavigationLogic.GenerateRoute(drone, route,
                                                       unitOfWork.NavigationPoints.GetNaviationPoints().Where(x => x.Id != drone.TargetPoint.Id).ToList(), 0);
            var resultRandom = NavigationLogic.GenerateRoute(droneRandom, routeRandom,
                                                             unitOfWork.NavigationPoints.GetNaviationPoints().Where(x => x.Id != droneRandom.TargetPoint.Id)
                                                             .ToList(), 0);

            //Assert
            Assert.IsNotEmpty(result, "The list does not contain any values");
            Assert.AreEqual(result.Last(), drone.TargetPoint, "The last value should be the target point");
            Assert.Greater(route.Count, 2, "The route only contains the start and finish points");
            Assert.AreEqual(35, result.Count, "The list has too many or too few points");
            Assert.True(result.Any(x => x.Id == Guid.Parse("e378a340-b368-4cc1-b412-28ed418a3d24")), "This point does not exist in the list");
            Assert.IsNotEmpty(resultRandom, "The route returned empty");
            Assert.True(result.Any(x => x.Id == Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A")));

            unitOfWork.Dispose();
        }
        public void TestFindStreets()
        {
            //Arrange
            const float xCoordExist    = -131.02f;
            const float xCoordNotExist = 1.0f;
            const float zCoordExist    = -471.16f;
            const float zCoordNotExist = 1.1f;

            //Act
            var resultOne = NavigationLogic.FindStreets(xCoordExist, zCoordExist).ToList();
            var resultTwo = NavigationLogic.FindStreets(xCoordNotExist, zCoordNotExist);

            //Assert
            Assert.IsNotEmpty(resultOne, "The results list is empty");
            Assert.AreEqual(resultOne.Count, 2, "There are too many or too few results in the list");
            Assert.IsEmpty(resultTwo, "The results list is not empty");
        }
        public void TestNearestToTargetPoint()
        {
            //Arrange
            var unitOfWork = new UnitOfWork(new DtsContext());
            var target     = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("B955D974-2D5C-45A3-AEBA-009AD23BAC3A")));
            var xPoint     = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("FC284FE6-73E1-42AC-9409-6267F4BAB607")));
            var zPoint     = new NavigationPoint(unitOfWork.NavigationPoints.GetSingle(Guid.Parse("1FEB85AD-CB1E-4501-8680-693348927648")));

            unitOfWork.Dispose();

            //Act
            var result = NavigationLogic.NearestToTargetPoint(target, xPoint, zPoint);

            //Assert
            Assert.IsNotNull(result, "The method returned null");
            Assert.AreEqual(result, xPoint, "The wrong point was chosen");
        }
示例#9
0
        //Called at the beginning to update the navigation points
        public override void Start()
        {
            var streets          = Entity.GetChildren().ToList();
            var navigationPoints = new List <NavigationPoint>();

            foreach (var street in streets)
            {
                var temp = street.GetChildren().ToList();
                navigationPoints.AddRange(temp.Select(t => new NavigationPoint
                {
                    Id        = t.Id,
                    XPosition = t.Transform.Position.X,
                    YPosition = t.Transform.Position.Y,
                    ZPosition = t.Transform.Position.Z
                }));
            }
            NavigationLogic.UpdateNavigation(navigationPoints);
        }
        public void TestCheckStreets()
        {
            //Arrange
            var xCoordExist    = new KeyValuePair <float, float>(-131.02f, -116.02f);
            var xCoordNotExist = new KeyValuePair <float, float>(1, 1);
            var zCoordExist    = new KeyValuePair <float, float>(-471.16f, -456.16f);
            var zCoordNotExist = new KeyValuePair <float, float>(10, 10);

            //Act
            var resultOne   = NavigationLogic.CheckStreet(xCoordExist);
            var resultTwo   = NavigationLogic.CheckStreet(xCoordNotExist);
            var resultThree = NavigationLogic.CheckStreet(zCoordExist);
            var resultFour  = NavigationLogic.CheckStreet(zCoordNotExist);

            //Assert
            Assert.True(resultOne, "The point does not exist in the database");
            Assert.False(resultTwo, "The point exists in the database");
            Assert.True(resultThree, "The point does not exist in the database");
            Assert.False(resultFour, "The point exists in the database");
        }
        public void TestCalculateDistance()
        {
            //Act
            var navigationPointOne = new NavigationPoint
            {
                XPosition = 10,
                YPosition = 10,
                ZPosition = 10
            };
            var navigationPointTwo = new NavigationPoint
            {
                XPosition = 10,
                YPosition = 10,
                ZPosition = 10
            };

            //Arrange
            var distance = NavigationLogic.CalculateDistance(navigationPointOne, navigationPointTwo);

            //Assert
            Assert.AreEqual(distance, 0, "The distance is incorrect");
        }
 public JsonResult GetUserNavigationStructure(GenericRequestModel request)
 {
     return(Json(NavigationLogic.GetUserNavigationStructure(request), JsonRequestBehavior.DenyGet));
 }