public object Calculation([FromBody] InputParameters inputParameters) { var adapted = new Stats(inputParameters.NumberOfIterations); var notadapted = new Stats(inputParameters.NumberOfIterations); for (var i = 0; i < inputParameters.NumberOfIterations; i++) { var adaptedAloha = new AdaptedSlottedAloha.Engine( inputParameters.NumberOfStations, inputParameters.InputFlow, inputParameters.NumberOfFrames, true); adapted.PackagesGenerated[i] = adaptedAloha.Statistics.PackagesGenerated; adapted.PackagesLeavedSystem[i] = adaptedAloha.Statistics.PackagesLeavedSystem; adapted.Collisions[i] = adaptedAloha.Statistics.Collisions; adapted.BackloggedPackages[i] = adaptedAloha.Statistics.BackloggedPackages; adapted.AverageOfBackloggedPackages[i] = adaptedAloha.Statistics.AverageOfBackloggedPackages; adapted.AverageOfPackagesLifeTime[i] = adaptedAloha.Statistics.AverageOfPackagesLifeTime; var notAdaptedAloha = new AdaptedSlottedAloha.Engine( inputParameters.NumberOfStations, inputParameters.InputFlow, inputParameters.NumberOfFrames, false); notadapted.PackagesGenerated[i] = notAdaptedAloha.Statistics.PackagesGenerated; notadapted.PackagesLeavedSystem[i] = notAdaptedAloha.Statistics.PackagesLeavedSystem; notadapted.Collisions[i] = notAdaptedAloha.Statistics.Collisions; notadapted.BackloggedPackages[i] = notAdaptedAloha.Statistics.BackloggedPackages; notadapted.AverageOfBackloggedPackages[i] = notAdaptedAloha.Statistics.AverageOfBackloggedPackages; notadapted.AverageOfPackagesLifeTime[i] = notAdaptedAloha.Statistics.AverageOfPackagesLifeTime; } var adaptedAverage = new AverageStats { PackagesGenerated = adapted.PackagesGenerated.Average(), PackagesLeavedSystem = adapted.PackagesLeavedSystem.Average(), Collisions = adapted.Collisions.Average(), BackloggedPackages = adapted.BackloggedPackages.Average(), AverageOfBackloggedPackages = adapted.AverageOfBackloggedPackages.Average(), AverageOfPackagesLifeTime = adapted.AverageOfPackagesLifeTime.Average() }; var notadaptedAverage = new AverageStats { PackagesGenerated = notadapted.PackagesGenerated.Average(), PackagesLeavedSystem = notadapted.PackagesLeavedSystem.Average(), Collisions = notadapted.Collisions.Average(), BackloggedPackages = notadapted.BackloggedPackages.Average(), AverageOfBackloggedPackages = notadapted.AverageOfBackloggedPackages.Average(), AverageOfPackagesLifeTime = notadapted.AverageOfPackagesLifeTime.Average() }; var outputResults = new OutputResults <AverageStats> { Adapted = adaptedAverage, NotAdapted = notadaptedAverage, }; return(outputResults); }
public void PrintToFile_Scenario_SuccessfulPrintMinAvailable() { //Arrange List<KeyValuePair<string, int>> sortedIPList = new List<KeyValuePair<string, int>>(); List<KeyValuePair<string, int>> sortedURLList = new List<KeyValuePair<string, int>>(); string outputFolder = new string(""); string fullPath = new string(""); setVar(ref sortedIPList, ref sortedURLList, ref outputFolder, ref fullPath); //Act OutputResults.PrintToFile(sortedIPList, sortedURLList, outputFolder, append: false); //Act OutputResults.PrintToFile(sortedIPList, sortedURLList, outputFolder, numberOfResults: 10, append: false); //Assert Assert.IsTrue(File.Exists(fullPath)); using (var sr = new StreamReader(fullPath)) { string output = sr.ReadToEnd(); Assert.IsTrue(output.Contains(string.Format("Number of unique IP Addresses:{0}", 3))); Assert.IsTrue(!output.Contains(string.Format("Number of unique URLs:{0}", 3))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "192.168.1.1", "100"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "192.168.1.10", "50"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "192.168.1.100", "25"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/test/test1", "100"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/test/test2", "50"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/test/test3", "25"))); } }
protected bool GetSplittedFromInputSidesLine(string inputSides, out string[] sidesLines) { sidesLines = new string[SIDES_NUMBER]; if (string.IsNullOrEmpty(inputSides) && !inputSides.Contains(SEPARATOR)) { OutputResults.OutputMessage(ERR_WRONG_DATA); return(false); } sidesLines = inputSides.Split(new char[] { SEPARATOR }, SIDES_NUMBER, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < sidesLines.Length; ++i) { if (string.IsNullOrEmpty(sidesLines[i])) { OutputResults.OutputMessage(ERR_TOO_FEW_ARGS); return(false); } sidesLines[i] = sidesLines[i].Trim(EMPTY_SPACE); if (sidesLines[i] == string.Empty) { OutputResults.OutputMessage(ERR_TOO_FEW_ARGS); return(false); } } return(true); }
static void Main(string[] args) { Application appTest = new Application(); appTest.DemonstrateTrianglesCollectionOrdering(); if (args.Length == 0) //Arguments are not assidned. The user is prompted to continue with console entry data. { OutputResults.OutputMessage(OutputResults.NULL_ENTRY_PARAMETERS); if (!Input.AskContinue(OutputResults.ASK_CONTINUE_WITH_CONSOLE)) //User does not want to continue with console entry data { OutputResults.OutputMessage(OutputResults.FINISH); Input.Wait(); return; } Parser parser = new Parser(); //User want to continue with console entering bool ifContinue = true; while (ifContinue) { ifContinue = parser.Process(); } Input.Wait(); return; } //Arguments are assigned. if (args.Length < Application.ARGS_TO_ACCEPT) { OutputResults.OutputMessage(Application.ERR_TOO_FEW_ARGS); OutputResults.OutputMessage(Application.RESTART); Input.Wait(); return; } string[] argsResult; Parser app = new Parser(); if (!app.GetNecessaryArgs(args, out argsResult)) { OutputResults.OutputMessage(Application.ERR_TOO_FEW_ARGS); OutputResults.OutputMessage(Application.RESTART); Input.Wait(); return; } app.Process(argsResult); OutputResults.OutputMessage(OutputResults.CAN_RESTART); OutputResults.OutputMessage(OutputResults.FINISH); Input.Wait(); return; }
public void PrintToFile_Scenario_FileNotFound() { //Arrange List<KeyValuePair<string, int>> sortedIPList = new List<KeyValuePair<string, int>>(); List<KeyValuePair<string, int>> sortedURLList = new List<KeyValuePair<string, int>>(); string outputFolder = new string(""); string fullPath = new string(""); setVar(ref sortedIPList, ref sortedURLList, ref outputFolder, ref fullPath); //Act OutputResults.PrintToFile(sortedIPList, sortedURLList, outputFolder, append: false); outputFolder = @"..\..\..\Outiles"; fullPath = outputFolder + @"\Output.txt"; //Assert Assert.ThrowsException<DirectoryNotFoundException>(() => { OutputResults.PrintToFile(sortedIPList, sortedURLList, outputFolder, numberOfResults: 10, append: false); }); }
static int Main(string[] args) { logEnabled = true; try { logEnabled = args.Length == 0 || Settings.Read("OutputLevel", "1") != "0"; } catch { } Version v = Assembly.GetEntryAssembly().GetName().Version; Version vl = Assembly.GetEntryAssembly().GetName().Version; logLine(string.Format("{0} v{1}.{2}, NKit.dll v{3}.{4} :: Nanook", Settings.ExeName, v.Major.ToString(), v.Minor.ToString(), vl.Major.ToString(), vl.Minor.ToString())); logLine(""); try { if (args.Length == 0) { logLine(string.Format(@"Recover Wii and GameCube image files back to the original state as ISO Usage: {0} <files|paths|masks> ... Parameters can be 1 or more filename and paths with or without masks. Masks can search subfolders. Edit NKit.dll.config Supported files: iso, wbfs, gcm, iso.dec, zip, rar, 7z If paths or filenames have spaces ensure they are enclosed in ""s Examples {0} c:\temp\image.wbfs {0} c:\temp\scrubbed.iso {0} c:\temp {0} *.* {0} c:\temp\image.wbfs \temp\*.zip x*.iso.dec {0} ""c:\path 1\*.zip"" ""c:\path 2\*.gcm"" ""..\path 3\*.iso"" Edit 'NKit.dll.config' to specify all the required values ", Settings.ExeName)); return(2); } bool recurse = Settings.Read("SearchSubfolders", "true") == "true"; logLine("Processing command line and scanning files..."); SourceFile[] files = SourceFiles.Scan(args, recurse); logLine(string.Format("Found {0} file{1}", files.Length.ToString(), files.Length == 1 ? "" : "s")); logLine(""); foreach (SourceFile src in files) { Converter nkitConvert = new Converter(src, true); try { nkitConvert.LogMessage += dx_LogMessage; nkitConvert.LogProgress += dx_LogProgress; OutputResults results = nkitConvert.RecoverToIso(); //apps can use the results } catch (Exception ex) { outputExceptionDetails(ex); } finally { nkitConvert.LogMessage -= dx_LogMessage; nkitConvert.LogProgress -= dx_LogProgress; } } if (files.Length == 0) { logLine("No files found"); } } catch (Exception ex) { outputExceptionDetails(ex); } if (logEnabled && Settings.Read("WaitForKeyAfterProcessing", "true") == "true") { logLine(""); logLine("Press enter / return to exit . . ."); Console.ReadLine(); } Environment.ExitCode = 2; return(2); }
public void IntegrationTest_Scenario_AdditionalExampleFile() { string file = ""; string outputFile = ""; string regexPattern = ""; string[] args = { "-f", @"..\..\..\TestFiles\ISLogFile.log", "-o", @"..\..\..\OutputFiles" }; try { // Only run if the -h --help flags are not passed as arguments if (CommandLineArgumentParser.ParseCommandLineArguments(args, out outputFile, out regexPattern, out file)) { // Assert that Command Line arguments are parsed as expected Assert.AreEqual(@"..\..\..\OutputFiles", outputFile); Assert.AreEqual(@"(^(?:[0-9]{1,3}\.){3}[0-9]{1,3})(?:.+)(?:""{1}(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE){1}\s{1}(.+)\s{1}(?:HTTP/1.1|HTTP/1.0|HTTP/2|HTTP/3){1}""{1})(?:.+$)", regexPattern); Assert.AreEqual(@"..\..\..\TestFiles\ISLogFile.log", file); ProcessedLogs pLogs = new ProcessedLogs(); // Process the log files ProcessLogFile logger = new ProcessLogFile(file, regexPattern, pLogs); logger.ReadFromFileAndStore(); // Assert - pLogs was populated as expected Assert.AreEqual(10000, logger.successful); Assert.AreEqual(0, logger.failed); Assert.AreEqual(1753, pLogs.GetIpAddresses().Count); Assert.AreEqual(1498, pLogs.GetUrls().Count); // Sort the processed logs SortProcessedLogs sort = new SortProcessedLogs(pLogs); sort.BeginSort(thenBy: true); Assert.IsTrue(sort.sortedIPList.ToArray()[0].Key == "66.249.73.135" && sort.sortedIPList.ToArray()[0].Value == 482); Assert.IsTrue(sort.sortedIPList.ToArray()[1].Key == "46.105.14.53" && sort.sortedIPList.ToArray()[1].Value == 364); Assert.IsTrue(sort.sortedIPList.ToArray()[2].Key == "130.237.218.86" && sort.sortedIPList.ToArray()[2].Value == 357); Assert.IsTrue(sort.sortedUrlList.ToArray()[0].Key == "/favicon.ico" && sort.sortedUrlList.ToArray()[0].Value == 807); Assert.IsTrue(sort.sortedUrlList.ToArray()[1].Key == "/style2.css" && sort.sortedUrlList.ToArray()[1].Value == 546); Assert.IsTrue(sort.sortedUrlList.ToArray()[2].Key == "/reset.css" && sort.sortedUrlList.ToArray()[2].Value == 538); string fileName = "AdditionalExampleOutputFile.txt"; if (!string.IsNullOrEmpty(outputFile)) { OutputResults.PrintToFile(sort.sortedIPList, sort.sortedUrlList, outputFile, fileName: fileName, append: false); } string fullPath = outputFile + @"\" + fileName; Assert.IsTrue(File.Exists(fullPath)); using (var sr = new StreamReader(fullPath)) { string output = sr.ReadToEnd(); Assert.IsTrue(output.Contains(string.Format("Number of unique IP Addresses:{0}", 1753))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "66.249.73.135", "482"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "46.105.14.53", "364"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "130.237.218.86", "357"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/favicon.ico", "807"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/style2.css", "546"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/reset.css", "538"))); } } } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void IntegrationTest_Scenario_ProvidedExampleFile() { string file = ""; string outputFile = ""; string regexPattern = ""; string[] args = { "-f", @"..\..\..\TestFiles\ProvidedExample.log", "-o", @"..\..\..\OutputFiles" }; try { // Only run if the -h --help flags are not passed as arguments if (CommandLineArgumentParser.ParseCommandLineArguments(args, out outputFile, out regexPattern, out file)) { // Assert that Command Line arguments are parsed as expected Assert.AreEqual(@"..\..\..\OutputFiles", outputFile); Assert.AreEqual(@"(^(?:[0-9]{1,3}\.){3}[0-9]{1,3})(?:.+)(?:""{1}(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE){1}\s{1}(.+)\s{1}(?:HTTP/1.1|HTTP/1.0|HTTP/2|HTTP/3){1}""{1})(?:.+$)", regexPattern); Assert.AreEqual(@"..\..\..\TestFiles\ProvidedExample.log", file); ProcessedLogs pLogs = new ProcessedLogs(); // Process the log files ProcessLogFile logger = new ProcessLogFile(file, regexPattern, pLogs); logger.ReadFromFileAndStore(); // Assert - pLogs was populated as expected Assert.AreEqual(23, logger.successful); Assert.AreEqual(0, logger.failed); Assert.AreEqual(11, pLogs.GetIpAddresses().Count); Assert.AreEqual(22, pLogs.GetUrls().Count); // Sort the processed logs SortProcessedLogs sort = new SortProcessedLogs(pLogs); sort.BeginSort(thenBy: true); Assert.IsTrue(sort.sortedIPList.ToArray()[0].Key == "168.41.191.40" && sort.sortedIPList.ToArray()[0].Value == 4); Assert.IsTrue(sort.sortedIPList.ToArray()[1].Key == "72.44.32.10" && sort.sortedIPList.ToArray()[1].Value == 3); Assert.IsTrue(sort.sortedIPList.ToArray()[2].Key == "50.112.00.11" && sort.sortedIPList.ToArray()[2].Value == 3); Assert.IsTrue(sort.sortedUrlList.ToArray()[0].Key == "/docs/manage-websites/" && sort.sortedUrlList.ToArray()[0].Value == 2); Assert.IsTrue(sort.sortedUrlList.ToArray()[1].Key == "http://example.net/faq/" && sort.sortedUrlList.ToArray()[1].Value == 1); Assert.IsTrue(sort.sortedUrlList.ToArray()[2].Key == "http://example.net/blog/category/meta/" && sort.sortedUrlList.ToArray()[2].Value == 1); string fileName = "ProvidedExampleOutputFile.txt"; if (!string.IsNullOrEmpty(outputFile)) { OutputResults.PrintToFile(sort.sortedIPList, sort.sortedUrlList, outputFile, fileName: fileName, append: false); } string fullPath = outputFile + @"\" + fileName; Assert.IsTrue(File.Exists(fullPath)); using (var sr = new StreamReader(fullPath)) { string output = sr.ReadToEnd(); Assert.IsTrue(output.Contains(string.Format("Number of unique IP Addresses:{0}", 11))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "168.41.191.40", "4"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "72.44.32.10", "3"))); Assert.IsTrue(output.Contains(string.Format("Most Active IP Addresses:{0} - HITS:{1}", "50.112.00.11", "3"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "/docs/manage-websites/", "2"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "http://example.net/faq/", "1"))); Assert.IsTrue(output.Contains(string.Format("Most visited URLS:{0} - Occurences:{1}", "http://example.net/blog/category/meta/", "1"))); } } } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void CreateGui () { win = new Gtk.Window (ApplicationName); win.DeleteEvent += new Gtk.DeleteEventHandler (OnWindow_Delete); win.BorderWidth = 4; win.SetDefaultSize (600, 500); VBox vbox = new VBox (false, 4); win.Add (vbox); // Menu Bar MenuBar mb = CreateMenuBar (); vbox.PackStart (mb, false, false, 0); // Tool Bar toolbar = CreateToolbar (); toolbar.ShowAll(); vbox.PackStart (toolbar, false, false, 0); // Panels tree = new DataTree (); // meta data tree view (left pane) tree.View.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler (OnDataTreeButtonRelease); tree.View.RowExpanded += new Gtk.RowExpandedHandler (OnDataTreeRowExpanded); // SQL Editor amd Results (right pane) outputResults = OutputResults.DataGrid; sourceFileNotebook = new Notebook(); sourceFileNotebook.Scrollable = true; NewEditorTab(); sourceFileNotebook.SwitchPage += new Gtk.SwitchPageHandler(OnEditorTabSwitched); HPaned hpaned = new HPaned (); vbox.PackStart (hpaned, true, true, 0); hpaned.Add1 (tree); hpaned.Add2 (sourceFileNotebook); statusBar = new Statusbar (); statusBar.HasResizeGrip = false; SetStatusBarText ("Ready!"); vbox.PackEnd (statusBar, false, false, 0); queryMode = QueryMode.Query; }
void OnToolbar_ToggleResultsOutput (System.Object obj, EventArgs ea) { if (outputResults == OutputResults.TextView) outputResults = OutputResults.DataGrid; else if (outputResults == OutputResults.DataGrid) outputResults = OutputResults.TextView; }
public void ProcessMemory() { while (InstructionPointer < Memory.Length) { var optCode = (OptCode)(Memory[InstructionPointer] % 100); switch (optCode) { case OptCode.Add: Memory[Memory[InstructionPointer + 3]] = GetParameter(1) + GetParameter(2); MoveToNextPointer(); break; case OptCode.Multiply: Memory[Memory[InstructionPointer + 3]] = GetParameter(1) * GetParameter(2); MoveToNextPointer(); break; case OptCode.Input: Memory[Memory[InstructionPointer + 1]] = ProgramId; MoveToNextPointer(2); break; case OptCode.Output: OutputResults.Add(GetParameter(1)); MoveToNextPointer(2); break; case OptCode.JumpIfTrue: if (GetParameter(1) != 0) { InstructionPointer = GetParameter(2); } else { MoveToNextPointer(3); } break; case OptCode.JumpIfFalse: if (GetParameter(1) == 0) { InstructionPointer = GetParameter(2); } else { MoveToNextPointer(3); } break; case OptCode.LessThan: Memory[Memory[InstructionPointer + 3]] = GetParameter(1) < GetParameter(2) ? 1 : 0; MoveToNextPointer(); break; case OptCode.Equals: Memory[Memory[InstructionPointer + 3]] = GetParameter(1) == GetParameter(2) ? 1 : 0; MoveToNextPointer(); break; case OptCode.Halt: Console.WriteLine($"OptCode 99 at position {InstructionPointer}. Halting..."); Processed = true; return; default: Console.WriteLine($"Invalid Opt Code at position {InstructionPointer} of {optCode}"); Processed = true; return; } } }
void ToggleResultsOutput () { if (outputResults == OutputResults.TextView) { outputResults = OutputResults.DataGrid; } else if (outputResults == OutputResults.DataGrid) { outputResults = OutputResults.TextView; } }
public void CreateGui() { win = new Gtk.Window (ApplicationName); win.DeleteEvent += new GtkSharp.DeleteEventHandler(OnWindow_Delete); win.BorderWidth = 4; win.DefaultSize = new Size (450, 300); VBox vbox = new VBox (false, 4); win.Add (vbox); // Menu Bar MenuBar mb = CreateMenuBar (); vbox.PackStart(mb, false, false, 0); // Tool Bar toolbar = CreateToolbar (); vbox.PackStart (toolbar, false, false, 0); // Panels VPaned paned = new VPaned (); vbox.PackStart (paned, true, true, 0); // SQL Editor (top TextView panel) sourceFileNotebook = new Notebook(); sourceFileNotebook.Scrollable = true; NewEditorTab(); paned.Add1 (sourceFileNotebook); sourceFileNotebook.SwitchPage += new GtkSharp.SwitchPageHandler(OnEditorTabSwitched); // bottom panel resultsNotebook = CreateOutputResultsGui (); paned.Add2 (resultsNotebook); statusBar = new Statusbar (); vbox.PackEnd (statusBar, false, false, 0); outputResults = OutputResults.TextView; ToggleResultsOutput (); }