private SetHelper SetUpHelper(IInterpreterSet parent) { SetHelper setHelper = new SetHelper(); setHelper.SetInterpreter(parent); return(setHelper); }
public void SubtractionSet_f_f(int[,] left, int[,] right, int[,] expected) { IInterpreterSet parent = Substitute.For <IInterpreterSet>(); SetHelper setHelper = SetUpHelper(parent); SetExpression lhsExpr = new SetExpression(null, null, null, 1, 1); SetExpression rhsExpr = new SetExpression(null, null, null, 1, 1); SubtractionExpression expr = new SubtractionExpression(lhsExpr, rhsExpr, 0, 0); parent.DispatchSet(lhsExpr, Arg.Any <List <object> >()).Returns(getSetFrom2dArray(left)); parent.DispatchSet(rhsExpr, Arg.Any <List <object> >()).Returns(getSetFrom2dArray(right)); Set res = setHelper.SubtractionSet(expr, new List <object>()); res.Should().BeEquivalentTo(getSetFrom2dArray(expected)); }
public void UnionSet_SetsWithVaryingNumberOfElementIndices_(Set left, Set right, Set expected) { IInterpreterSet parent = Substitute.For <IInterpreterSet>(); SetHelper setHelper = SetUpHelper(parent); SetExpression leftExpr = new SetExpression(null, null, null, 0, 0); SetExpression rightExpr = new SetExpression(null, null, null, 0, 0); UnionExpression intersectionExpr = new UnionExpression(leftExpr, rightExpr, 0, 0); parent.DispatchSet(leftExpr, Arg.Any <List <object> >()).Returns(left); parent.DispatchSet(rightExpr, Arg.Any <List <object> >()).Returns(right); Set result = setHelper.UnionSet(intersectionExpr, new List <object>()); result.Should().BeEquivalentTo(expected); }
public void IntersectionSet_ValidInput_ReturnsCorrectSet(Set left, Set right, Set exp) { IInterpreterSet parent = Substitute.For <IInterpreterSet>(); SetHelper setHelper = SetUpHelper(parent); SetExpression leftExpr = new SetExpression(null, null, null, 0, 0); SetExpression rightExpr = new SetExpression(null, null, null, 0, 0); IntersectionExpression intersectionExpr = new IntersectionExpression(leftExpr, rightExpr, 0, 0); parent.DispatchSet(leftExpr, Arg.Any <List <object> >()).Returns(left); parent.DispatchSet(rightExpr, Arg.Any <List <object> >()).Returns(right); Set result = setHelper.IntersectionSet(intersectionExpr, new List <object>()); result.Should().BeEquivalentTo(exp); }
private List <BoundNode> GetBounds(IInterpreterSet parent, List <int> minValues, List <int> maxValues) { List <BoundNode> bounds = new List <BoundNode>(); for (int i = 0; i < minValues.Count; i++) { IntegerLiteralExpression min = new IntegerLiteralExpression(minValues[i], 0, 0); IntegerLiteralExpression max = new IntegerLiteralExpression(maxValues[i], 0, 0); bounds.Add(new BoundNode(null, min, max, 0, 0)); parent.DispatchInt(min, Arg.Any <List <object> >()).Returns(minValues[i]); parent.DispatchInt(max, Arg.Any <List <object> >()).Returns(maxValues[i]); } return(bounds); }
public void EdgesField_EdgesGraphFieldAndListOfObjects_ReturnsCorrectResult() { IdentifierExpression identifier = new IdentifierExpression("test", 0, 0); EdgesGraphField input1 = new EdgesGraphField(identifier, 0, 0); List <Object> list = new List <Object>(); Set expected = new Set(new Element(1)); Graph graph = new Graph(null, expected, null, null); IInterpreterSet parent = Substitute.For <IInterpreterSet>(); parent.DispatchGraph(identifier, Arg.Any <List <object> >()).Returns(graph); SetHelper setHelper = SetUpHelper(parent); Set res = setHelper.EdgesField(input1, list); res.Should().BeEquivalentTo(expected); }
public void SetExpression_f_f(List <int> min, List <int> max, List <List <object> > indexPairs) { IInterpreterSet parent = Substitute.For <IInterpreterSet>(); SetHelper setHelper = SetUpHelper(parent); List <BoundNode> bounds = GetBounds(parent, min, max); LessExpression expr = new LessExpression(null, null, 0, 0); SetExpression setExpr = new SetExpression(new ElementNode(null, null, 0, 0), bounds, expr, 0, 0); List <Element> expectedElements = new List <Element>(); for (int i = 0; i < indexPairs.Count; i++) { expectedElements.Add(new Element(indexPairs[i].ConvertAll(x => (int)x))); } Set expected = new Set(expectedElements); parent.DispatchBoolean(expr, Arg.Any <List <Object> >()).Returns(x => IsContained(indexPairs, (List <Object>)x[1])); Set result = setHelper.SetExpression(setExpr, new List <object>()); result.Should().BeEquivalentTo(expected); }
public void SetInterpreter(IInterpreterSet interpreter) { _interpreter = interpreter; }