public void AddTest() { Mock <ICtx> mockCtx = new Mock <ICtx>(); RectangleHandler rectangleHandler = new RectangleHandler(mockCtx.Object); rectangleHandler.Add("NoName", 8, 5); rectangleHandler.Add("NoName", 4, 7); }
public void GetTest() { Mock <ICtx> mockCtx = new Mock <ICtx>(); RectangleHandler rectangleHandler = new RectangleHandler(mockCtx.Object); rectangleHandler.Add("NoName", 8, 5); IRectangle rectangle = rectangleHandler.Get("NoName"); Assert.NotNull(rectangle); Assert.True(rectangle.SideA == 8 && rectangle.SideB == 5); Assert.Null(rectangleHandler.Get("aaa")); }
public void GetPerimeterTest() { Mock <ICtx> mockCtx = new Mock <ICtx>(); Mock <IPerimeterCalc> mockPerimeter = new Mock <IPerimeterCalc>(); mockCtx.SetupGet(a => a.GetPerimeterCalc).Returns(mockPerimeter.Object); mockPerimeter.Setup(f => f.Calc(It.IsAny <IRectangle>())).Returns <IRectangle>( g => { return((g.SideA + g.SideB) * 2); }); RectangleHandler rectangleHandler = new RectangleHandler(mockCtx.Object); rectangleHandler.Add("NoName", 8, 5); Assert.True(rectangleHandler.GetPerimeter("NoName") == 26); Assert.True(rectangleHandler.GetPerimeter("aaa") == 0); }
public void GetAreaTest() { Mock <ICtx> mockCtx = new Mock <ICtx>(); Mock <IAreaCalc> mockArea = new Mock <IAreaCalc>(); mockCtx.SetupGet(a => a.GetAreaCalc).Returns(mockArea.Object); mockArea.Setup(f => f.Calc(It.IsAny <IRectangle>())).Returns <IRectangle>( g => { return(g.SideA * g.SideB); }); RectangleHandler rectangleHandler = new RectangleHandler(mockCtx.Object); rectangleHandler.Add("NoName", 8, 5); Assert.True(rectangleHandler.GetArea("NoName") == 40); Assert.True(rectangleHandler.GetArea("aaa") == 0); }
void SetupSolutionParams() { SolutionPanel.SolveButtonHandler = solution; void solution(bool isGraphic) { GraphicSettings settings = null; SolutionPanel.button1.Enabled = false; if (isMethodParams && isFuncParams) { if (isGraphic) { this.graphicFirstDimension = (int)SolutionPanel.firstVar.Value; this.graphicSecondDimension = ((int)SolutionPanel.secondVar.Value != graphicFirstDimension) ? (int)SolutionPanel.secondVar.Value : ((int)SolutionPanel.secondVar.Value != (int)SolutionPanel.secondVar.Maximum) ? Math.Min(this.graphicFirstDimension + 1, (int)SolutionPanel.secondVar.Maximum): this.graphicFirstDimension - 1; graphic = new GraphicWindow(graphicWindowHeight, graphicWindowWidth, graphicWindowFPS, graphicWindowVsync, graphicWindowAnit); graphic.SetRectangleLimit(rectangleLimit); RectangleHandler handler = new RectangleHandler(graphic.GetRectangleFromMethod); settings = new GraphicSettings(handler, graphicFirstDimension, graphicSecondDimension); graphic?.Window.SetActive(false); } if (isDihtomiaCurrentMethod) { var method = currentMethodSettings as DihtomiaParams; double funcMin = 0; int counter = 0; int optimal = 0; List <double> optimalPoint = null; FormTimer.Start(); watch.Restart(); Task.Run(() => { this.isCalculating = true; var solve = MNPD.Solve(method.Function, method.Lipzits, method.Precision, method.LipzitsParametr, method.LowerPoint, method.UpperPoint, method.Rule, settings); funcMin = solve.FunctionMinimum; counter = solve.counter; optimal = solve.optimal; optimalPoint = solve.optimalPoint; this.Invoke(new Action(() => { watch.Stop(); Logs($"Мин. значение функции={funcMin}\nЧисло итерации={counter}\nИтерация оптимального значения={optimal}"); Logs(string.Join("\r\n", optimalPoint.Select((point, index) => $"x{index} = {String.Format("{0:F8}", point)}"))); graphic?.ShowWindow(); SolutionPanel.button1.Enabled = false; } )); }).ContinueWith((taskRes) => { this.isCalculating = false; this.Invoke(new Action(() => { SolutionPanel.button1.Enabled = true; FormTimer.Stop(); })); //TODO: NORMAL RESET }); } else { var method = currentMethodSettings as ModificatedParams; double funcMin = 0; int counter = 0; int optimal = 0; List <double> optimalPoint = null; FormTimer.Start(); watch.Restart(); Task.Run(() => { this.isCalculating = true; var solve = MNPANK.Solve(method.Function, method.Lipzits, method.Precision, method.LipzitsParametr, method.LowerPoint, method.UpperPoint, method.SubRule, method.MainRule, settings); funcMin = solve.FunctionMinimum; counter = solve.counter; optimal = solve.optimal; optimalPoint = solve.optimalPoint; this.Invoke(new Action(() => { watch.Stop(); Logs($"\r\nМин. значение функции={funcMin}\r\nЧисло итерации={counter}\r\nИтерация оптимального значения={optimal}\r\n"); Logs("Точка оптимума:"); Logs(string.Join("\r\n", optimalPoint.Select((point, index) => $"x{index} = {String.Format("{0:F8}", point)}"))); graphic?.ShowWindow(); SolutionPanel.button1.Enabled = false; } )); //graphic?.Window.SetActive(true); }).ContinueWith((taskRes) => { this.isCalculating = false; this.Invoke(new Action(() => { SolutionPanel.button1.Enabled = true; FormTimer.Stop(); })); }); } } GC.Collect(); } }
public Ctx() { GetRectangleHandler = new RectangleHandler(this); }
public GraphicSettings(RectangleHandler handler, int firstDimension, int secondDimension) { this.handler = handler; this.firstDimension = firstDimension; this.secondDimension = secondDimension; }