public void ItShouldReplaceOutputValue() { var filter = new Filter <int, bool>("{0} > {1}"); filter.SetParameters(new List <IMonthlyParameter <int> > { SetDictionary("0", 10), SetDictionary("1", 1) }); var concept = new Concept <int>(); concept.AddFilter(filter); const string text = "({0} * {1}) + ({2} * {3})"; var operation = new RuleTree <int, int>(text); operation.SetParameters( new List <IMonthlyParameter <int> > { SetDictionary("0", 2), SetDictionary("1", 3), SetDictionary("2", 2), SetDictionary("3", 5) }); concept.AddOperation(operation); var output = SetDictionary("output", 25); concept.AddOutputParameter1(output); concept.Run(); Assert.AreEqual(16, concept.Output1.Value[Month.May]); Assert.AreEqual(16, output.Value[Month.August]); }
public void ItShouldRunWhenValid() { var concept = new Concept <int>(); var operation = new Mock <IRule <int, int> >(); operation.Setup(x => x.GetResult()).Returns(SetDictionary("0", 1)); concept.AddOperation(operation.Object); Assert.DoesNotThrow(concept.Run); }
public void ItShouldRunWhenFilterAndOperations() { var filter = new Filter <int, bool>("{0} > {1}") { Parameter1 = SetDictionary("0", 10), Parameter2 = SetDictionary("1", 1) }; var concept = new Concept <int>(); concept.AddFilter(filter); var operation = new Mock <IRule <int, int> >(); operation.Setup(x => x.GetResult()).Returns(SetDictionary("0", 1)); concept.AddOperation(operation.Object); Assert.DoesNotThrow(concept.Run); }
public void ItShouldGet15OnOutput() { var filter = new Filter <int, bool>("{0} > {1}") { Parameter1 = SetDictionary("0", 10), Parameter2 = SetDictionary("1", 1) }; var concept = new Concept <int>(); concept.AddFilter(filter); var operation = new Mock <IRule <int, int> >(); operation.Setup(x => x.GetResult()).Returns(SetDictionary("0", 15)); concept.AddOperation(operation.Object); concept.Run(); Assert.AreEqual(15, concept.Output1.Value[Month.March]); }