public void LoadItemGivenInvalidProblemNameShouldThrowArgumentException(string problemName)
        {
            // arrange
              var manager = new TspLibItemManager(Helpers.LibPath);

              // assert
              Assert.Throws<ArgumentException>(() => manager.LoadItem(problemName));
        }
        public void HasOptimalTourShouldMatchThatOfInfoProvider()
        {
            // arrange
              const string problemName = "eil76";
              var loader = new SymmetricTspItemLoader(Helpers.LibPath);
              var item = loader.GetItem(problemName);
              var infoProvider = new SymmetricTspItemInfoProvider(item);
              var manager = new TspLibItemManager(Helpers.LibPath);

              // act
              manager.LoadItem(problemName);

              // assert
              Assert.AreEqual(infoProvider.HasOptimalTour, manager.HasOptimalTour);
        }
        public void DistancesShouldMatchThatOfInfoProvider()
        {
            // arrange
              const string problemName = "eil76";
              var loader = new SymmetricTspItemLoader(Helpers.LibPath);
              var item = loader.GetItem(problemName);
              var infoProvider = new SymmetricTspItemInfoProvider(item);
              var manager = new TspLibItemManager(Helpers.LibPath);

              // act
              manager.LoadItem(problemName);

              // assert
              CollectionAssert.AreEqual(infoProvider.Distances, manager.Distances);
        }
        public void MinMaxCoordinatesShouldMatchThatOfInfoProvider()
        {
            // arrange
              const string problemName = "eil76";
              var loader = new SymmetricTspItemLoader(Helpers.LibPath);
              var item = loader.GetItem(problemName);
              var infoProvider = new SymmetricTspItemInfoProvider(item);
              var manager = new TspLibItemManager(Helpers.LibPath);

              // act
              manager.LoadItem(problemName);

              // assert
              Assert.AreEqual(infoProvider.MaxXCoordinate, manager.MaxXCoordinate);
              Assert.AreEqual(infoProvider.MaxYCoordinate, manager.MaxYCoordinate);
              Assert.AreEqual(infoProvider.MinXCoordinate, manager.MinXCoordinate);
              Assert.AreEqual(infoProvider.MinYCoordinate, manager.MinYCoordinate);
        }