public static void OutputFactorizationTree(FactorizationTree tree, long userNumber) { Console.Write($"Factorization Tree of {userNumber}: "); tree.Root.Print(); Console.WriteLine("\n"); return; }
static void Main(string[] args) { string userInput = null; bool userContinue = true; while (userContinue) { userInput = StandardInputMessage.RequestInput(); if (DataValidation.ValidateInput(userInput) == false) { bool retry = StandardInputMessage.RePrompt(); if (retry == false) { userContinue = false; Environment.ExitCode = 22; } } else { long userNumber = DataManipulation.ReturnValue(userInput); if (DataValidation.ValidateComposite(userNumber) == false) { bool retry = StandardInputMessage.RePrompt(); //refactor using userContinue from RePrompt() if (retry == false) { userContinue = false; Environment.ExitCode = 44; } } else { CompositeNumber userComposite = new CompositeNumber(userNumber); LinkedList <IFactor> factors = Factorize.Factor(userComposite); List <IFactor> primeNumbers = DataManipulation.ReturnPrimes(factors); //Should be list of primes List <IFactor> compositeNumbers = DataManipulation.ReturnComposites(factors); //Should be list of composites FactorizationTree factorTree = DataManipulation.ReturnPopulatedTree(factors); StandardOutputMessage.OutputFactors(compositeNumbers, userNumber); StandardOutputMessage.OutputFactors(primeNumbers, userNumber); StandardOutputMessage.OutputFactorizationTree(factorTree, userNumber); bool retry = StandardInputMessage.RePrompt(); if (retry == false) { userContinue = false; Environment.ExitCode = 100; } } } } }
public static FactorizationTree ReturnPopulatedTree(LinkedList <IFactor> factors) { FactorizationTree tree = new FactorizationTree(); foreach (var factor in factors) { tree.Add(factor); } return(tree); }
public void FactorizationTree_Add_AddRoot(long root) { // Arrange CompositeNumber compositeNumber = new CompositeNumber(root); FactorizationTree testTree = new FactorizationTree(); // Act testTree.Add(compositeNumber); // Assert Assert.True(testTree.Count == 1); Assert.True(testTree.Root.value == root); }
public void FactorizationTree_Add_AddSubNodes(long root, long sub1, long sub2) { // Arrange PrimeNumber prime1 = new PrimeNumber(sub1); PrimeNumber prime2 = new PrimeNumber(sub2); CompositeNumber compositeNumber = new CompositeNumber(root); FactorizationTree testTree = new FactorizationTree(); // Act testTree.Add(compositeNumber); testTree.Add(prime1); testTree.Add(prime2); // Assert Assert.True(testTree.Count == 3); Assert.True(testTree.Root.value == root); }