public void SimulatorTest() { var computerResource = new Resource { Name = "Компьютер", Type = "Компьютер", MaxUsageCount = 1, Parameters = new Dictionary<string, double> { { "Тактовая частота", 1900 }, { "Надёжность", 10 }, } }; var tracingProcedure = new Procedure() { Name = "Трассировка", Parameters = new Dictionary<string, double> { { "Сложность", 2.5 }, { "Число элементов", 10 } }, ProgressFunction = "[x]/" + "(20*[Сложность]" + //50 "+100*[Число элементов]" + //1000 "-10*[Человек.Профессионализм]" + //-100 "-100*[Компьютер.Тактовая частота]/2400)",//-79.16 //f(x)=[x]/870,84 Resources = new List<Resource> { computerResource, new Resource { Name = "Вася", Type = "Человек", MaxUsageCount = 1, Parameters = new Dictionary<string, double> { { "Профессионализм", 10 }, } } }, }; var processingResultsProcedure = new Procedure() { Name = "Обработка результатов", Parameters = new Dictionary<string, double> { { "Объем данных", 10 }, { "Сложность расчётов", 10 } }, ProgressFunction = "[x]/" + "(10*[Объем данных]" + //100 "+20*[Сложность расчётов]" + //200 "-4*[Принтер.Скорость печати]" +//-40 "-100*[Компьютер.Тактовая частота]/2400" + "-20*rnd(-10,10))",//[-20, 20] //f(x)=[x]/180,84 Resources = new List<Resource> { computerResource, new Resource { Name = "Canon 12SX", Type = "Принтер", MaxUsageCount = 1, Parameters = new Dictionary<string, double> { { "Скорость печати", 10 }, { "Надёжность", 10 }, } }, } }; tracingProcedure.Connect(processingResultsProcedure); var simulator = new Simulator(); var results = simulator.Simulate(new SimulationOptions { Procedures = new List<Procedure> { tracingProcedure, processingResultsProcedure } }); Assert.IsTrue(results.IsSuccess); Assert.AreEqual(1052, results.ModelingTime.Value, 200); }