public static void writeTestToFile(string fileName, InputSet inputSet, int testNum, int greedyResult, int dynamicResult, int memoryResult) { FileStream ostrm; StreamWriter writer; TextWriter oldOut = Console.Out; try { ostrm = new FileStream("../../../OutputFile/" + fileName + ".txt", FileMode.Append, FileAccess.Write); writer = new StreamWriter(ostrm); } catch (Exception e) { Console.WriteLine("Cannot open Redirect.txt for writing"); Console.WriteLine(e.Message); return; } Console.SetOut(writer); printTest(inputSet, testNum, greedyResult, dynamicResult, memoryResult); Console.SetOut(oldOut); writer.Close(); ostrm.Close(); Console.WriteLine("Write InputSet " + fileName + " - Done"); }
public static InputSet ParseInputFile(string InputSetName) { int fieldIndex = 0; InputSet inputSet = new InputSet(); int tempWeight = 0; int tempValue = 0; int itemNameIndex = 1; using (TextFieldParser parser = new TextFieldParser(@"..\..\..\InputCSV\" + InputSetName + ".csv")) { parser.TextFieldType = FieldType.Delimited; parser.SetDelimiters(" "); while (!parser.EndOfData) { //Process row string[] fields = parser.ReadFields(); foreach (string field in fields) { //Process field if (parser.LineNumber == 2) { if (fieldIndex == 0) { inputSet.Capacity = int.Parse(field); fieldIndex++; } else if (fieldIndex == 1) { inputSet.OptimalValue = int.Parse(field); fieldIndex = 0; } } else { if (fieldIndex == 0) { tempValue = int.Parse(field); fieldIndex++; } else if (fieldIndex == 1) { tempWeight = int.Parse(field); } } } if (parser.LineNumber != 2) { fieldIndex = 0; inputSet.addItem(new Item("Item" + itemNameIndex, tempWeight, tempValue)); itemNameIndex++; } } } return(inputSet); }
public static void printTest(InputSet inputSet, int testNum, int greedyResult, int dynamicResult, int memoryResult) { var table = new ConsoleTable("Test-Num: " + testNum, "Items: " + inputSet.Items.Count, "Capacity: " + inputSet.Capacity); table.AddRow("Algorithm", "Result", "OptimalValue: " + inputSet.OptimalValue); table.AddRow("Greedy", greedyResult, showResultDeviation(greedyResult, inputSet.OptimalValue)); table.AddRow("Dynamic", dynamicResult, showResultDeviation(dynamicResult, inputSet.OptimalValue)); table.AddRow("Memory", memoryResult, showResultDeviation(memoryResult, inputSet.OptimalValue)); table.Write(); }