Example #1
0
        private static void Validate(List <string> projects, Dictionary <string, string> dependencies, List <string> expectedOrder, List <string> expectedDFSOrder)
        {
            // var result = Question_4_7.FindBuildOrder(projects, dependencies);
            //ValidateResult(result, projects, expectedOrder);
            var result2 = Question_4_7.FindBuildOrderDFS(projects, dependencies);

            ValidateResult(result2, projects, expectedDFSOrder);
        }
Example #2
0
        public void GetProjectsBuildOrderTest(int testCaseIndex, string[] projects, string[] expectedBuildOrder)
        {
            // Arrange
            var dependencies = GetTestDependencies(testCaseIndex);

            // Act
            var resultBuildOrder = Question_4_7.GetProjectsBuildOrder(projects, dependencies);

            // Assert
            if (expectedBuildOrder == null)
            {
                Assert.IsNull(resultBuildOrder, "Invalid build order is not detected.");
            }
            else
            {
                Assert.AreEqual(expectedBuildOrder.Length, resultBuildOrder.Count, "Result count mismatch.");
                for (int i = 0; i < expectedBuildOrder.Length; i++)
                {
                    Assert.AreEqual(expectedBuildOrder[i], resultBuildOrder[i], $"Project does not match at sequence {i}.");
                }
            }
        }
Example #3
0
 public void Question_4_7_InvalidCases()
 {
     TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(null, CreateDependencies("a", "b")), typeof(ArgumentNullException));
     TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(CreateProjectList("a"), null), typeof(ArgumentNullException));
     TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(CreateProjectList("a"), CreateDependencies("a", "b")), typeof(ArgumentOutOfRangeException));
 }