package eu.stratosphere.sopremo.base; import static eu.stratosphere.sopremo.type.JsonUtil.createPath; import org.junit.Test; import eu.stratosphere.sopremo.expressions.ArithmeticExpression; import eu.stratosphere.sopremo.expressions.ArithmeticExpression.ArithmeticOperator; import eu.stratosphere.sopremo.expressions.ObjectCreation; import eu.stratosphere.sopremo.testing.SopremoOperatorTestBase; import eu.stratosphere.sopremo.testing.SopremoTestPlan; //import eu.stratosphere.sopremo.SopremoTestPlan; public class ProjectionTest extends SopremoOperatorTestBase<Projection> { /* * (non-Javadoc) * @see eu.stratosphere.sopremo.EqualCloneTest#shouldComplyEqualsOperator() */ @Override @Test public void shouldComplyEqualsOperator() { super.shouldComplyEqualsOperator(); } @Test public void shouldProjectSomeFields() { final SopremoTestPlan sopremoPlan = new SopremoTestPlan(1, 1); final ObjectCreation transformation = new ObjectCreation(); transformation.addMapping("sum", new ArithmeticExpression(createPath("a"), ArithmeticOperator.ADDITION, createPath("b"))); sopremoPlan.getOutputOperator(0).setInputs( new Projection(). withResultProjection(transformation). withInputs(sopremoPlan.getInputOperator(0))); sopremoPlan.getInput(0). addObject("a", 1, "b", 4). addObject("a", 2, "b", 5). addObject("a", -1, "b", 4); sopremoPlan.getExpectedOutput(0). addObject("sum", 5). addObject("sum", 7). addObject("sum", 3); sopremoPlan.run(); } @Test public void shouldProjectSomeFieldsWithInputSelection() { final SopremoTestPlan sopremoPlan = new SopremoTestPlan(1, 1); final ObjectCreation transformation = new ObjectCreation(); transformation.addMapping("sum", new ArithmeticExpression(createPath("0", "a"), ArithmeticOperator.ADDITION, createPath("0", "b"))); sopremoPlan.getOutputOperator(0).setInputs( new Projection(). withResultProjection(transformation). withInputs(sopremoPlan.getInputOperator(0))); sopremoPlan.getInput(0). addObject("a", 1, "b", 4). addObject("a", 2, "b", 5). addObject("a", -1, "b", 4); sopremoPlan.getExpectedOutput(0). addObject("sum", 5). addObject("sum", 7). addObject("sum", 3); sopremoPlan.run(); } @Override protected Projection createDefaultInstance(final int index) { final ObjectCreation transformation = new ObjectCreation(); transformation.addMapping("field", createPath(String.valueOf(index))); return new Projection().withResultProjection(transformation); } }