/// <summary> /// Runs an individual algorithm. /// </summary> /// <param name="algorithmContext">Algorithm context</param> /// <param name="algorithmStrategy">Algorithm to run</param> static int RunIndividualAlgorithm(AlgorithmContext algorithmContext, IAlgorithmStrategy algorithmStrategy) { algorithmContext.AlgorithmStrategy = algorithmStrategy; var missCount = algorithmContext.Execute(); return(missCount); }
public void AfterSwitchCurrentAlgorithmIsAlgorithmTwo() { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); context.Switch <AlgorithmTwo>(); Assert.Equal(typeof(AlgorithmTwo), context.CurrentAlgorithmType); }
protected SqlServerOperation(IDatabaseConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(); } Context = new AlgorithmContext(configuration); }
public void ReturnsExpectedOutput(double input, string expectedOutput) { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); var output = context.Withdraw(input); Assert.Equal(expectedOutput, output.Output); }
public void BalanceIsUpdatedCorrectly(double input, double expectedOutput) { var context = AlgorithmContext.GetInitialised <AlgorithmTwo>(CultureInfo.GetCultureInfo("en-GB")); _ = context.Withdraw(input); Assert.Equal(expectedOutput, context.Balance); }
public Algorithm(AlgorithmContext context) { _context = context; _context.Terminated += (sender, e) => { Terminate(); }; }
public void WithdrawReturnsMsgIfAmountGreaterThanBalance() { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); var input = 5000; var output = context.Withdraw(input); Assert.Equal("Insufficient funds!", output.Output); }
public void WithdrawReturnsBalanceEqualToContextBalance() { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); var input = 5000; var output = context.Withdraw(input); Assert.Equal(context.Balance, output.Balance); }
public void Process(float[] imagedata) { var Task1 = Task.Run(() => { using (var ctx = new AlgorithmContext("Context 1")) { SmoothImage smoothImage = new SmoothImage(ctx); SharpenImage sharpenImage = new SharpenImage(ctx); } }); // ... Task.WaitAll(Task1, Task2, Task3); }
static void Main(string[] args) { CultureInfo culture = CultureInfo.CreateSpecificCulture("en-GB"); var context = AlgorithmContext.GetInitialised <AlgorithmOne>(culture); //context.Switch<AlgorithmOne>(); //context.Switch<AlgorithmTwo>(); while (true) { MakeAWithdrawl(context); Console.WriteLine(); Console.Write("Another withdrawal? (Y/N): "); var info = Console.ReadKey(); if (info.Key == ConsoleKey.N) { break; } Console.Clear(); } }
public InterviewQuestionController(AlgorithmContext context) { _algorithmContext = context; }
/// <summary> /// Starts the program. /// </summary> /// <param name="options">Input parameters</param> static void RunOptions(Options options) { if (CheckOptions(options)) { var virtualMemory = new VirtualMemory(options.VirtualMemoryCapacity, options.PageCount); var pageSequence = File.ReadAllLines(options.PageSequenceFile); var algorithmContext = new AlgorithmContext(virtualMemory, pageSequence); switch (options.Algorithm) { case "FIFO": var missCount = RunIndividualAlgorithm(algorithmContext, new FirstInFirstOut()); Console.WriteLine($"Cantidad de misses FIFO: {missCount}"); break; case "LRU": missCount = RunIndividualAlgorithm(algorithmContext, new LeastRecentlyUsed()); Console.WriteLine($"Cantidad de misses LRU: {missCount}"); break; case "CLK": missCount = RunIndividualAlgorithm(algorithmContext, new Clock()); Console.WriteLine($"Cantidad de misses CLK: {missCount}"); break; case "ALL": var currentMin = int.MaxValue; var currentMinAlgorithm = "Ninguno"; // Execute FIFO var missCountFIFO = RunIndividualAlgorithm(algorithmContext, new FirstInFirstOut()); if (missCountFIFO < currentMin) { currentMin = missCountFIFO; currentMinAlgorithm = "FIFO"; } // Execute LRU var virtualMemory2 = new VirtualMemory(options.VirtualMemoryCapacity, options.PageCount); algorithmContext.VirtualMemory = virtualMemory2; var missCountLRU = RunIndividualAlgorithm(algorithmContext, new LeastRecentlyUsed()); if (missCountLRU < currentMin) { currentMin = missCountLRU; currentMinAlgorithm = "LRU"; } // Execute CLK var virtualMemory3 = new VirtualMemory(options.VirtualMemoryCapacity, options.PageCount); algorithmContext.VirtualMemory = virtualMemory3; var missCountCLK = RunIndividualAlgorithm(algorithmContext, new Clock()); if (missCountCLK < currentMin) { currentMin = missCountCLK; currentMinAlgorithm = "CLK"; } // Print results Console.WriteLine($"Cantidad de misses FIFO: {missCountFIFO}"); Console.WriteLine($"Cantidad de misses LRU: {missCountLRU}"); Console.WriteLine($"Cantidad de misses CLK: {missCountCLK}"); Console.WriteLine($"{currentMinAlgorithm} es el que tiene menos misses."); break; } } }
protected SqlServerOperation(IDatabaseConfiguration configuration) { if (configuration == null) throw new ArgumentNullException(); Context = new AlgorithmContext(configuration); }
public AlgorithmController(AlgorithmContext context) { _algorithmContext = context; }
public void InitialBalanceEqual4638() { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); Assert.Equal(4638.00, context.Balance); }
public SmoothImage(AlgorithmContext context) : base(context) { }
public void DefaultAlgorithmIsAlgorithmOne() { var context = AlgorithmContext.GetInitialised <AlgorithmOne>(CultureInfo.GetCultureInfo("en-GB")); Assert.Equal(typeof(AlgorithmOne), context.CurrentAlgorithmType); }
public SharpenImage(AlgorithmContext context) : base(context) { }