public void Navigator_DoesNotRememberAlreadyTouchedPoints()
        {
            var navigator = new Navigator <IntVector1>(IntVector1.FromInt(0), oneDPathFinder);

            navigator.Move(IntVector1.FromInt(1));
            Assert.AreEqual(2, navigator.DistinctPointsVisited);
            navigator.Move(IntVector1.FromInt(-1));
            Assert.AreEqual(2, navigator.DistinctPointsVisited);
        }
        public void Navigator_CanRememberTouchedPoints()
        {
            var plusOne   = IntVector1.FromInt(1);
            var navigator = new Navigator <IntVector1>(IntVector1.FromInt(0), oneDPathFinder);

            navigator.Move(plusOne);
            navigator.Move(plusOne);
            Assert.AreEqual(3, navigator.DistinctPointsVisited);
            navigator.Move(plusOne);
            Assert.AreEqual(4, navigator.DistinctPointsVisited);
        }
        public void Navigator_RemembersIntermediatePointsOfTravel()
        {
            var navigator = new Navigator <IntVector1>(IntVector1.FromInt(0), oneDPathFinder);

            navigator.Move(IntVector1.FromInt(3));
            Assert.AreEqual(4, navigator.DistinctPointsVisited);

            var navigator2 = new Navigator <IntVector1>(IntVector1.FromInt(0), oneDPathFinder);

            navigator2.Move(IntVector1.FromInt(-3));
            Assert.AreEqual(4, navigator.DistinctPointsVisited);
        }