use of org.activityinfo.model.query.ColumnView in project activityinfo by bedatadriven.
the class EnumerationQueryTest method enumRefTests.
@Test
public void enumRefTests() {
TestingStorageProvider catalog = new TestingStorageProvider();
ColumnSetBuilder builder = new ColumnSetBuilder(catalog, new NullFormScanCache(), new NullFormSupervisor());
IntakeForm intakeForm = catalog.getIntakeForm();
QueryModel queryModel = new QueryModel(intakeForm.getFormId());
queryModel.selectField(intakeForm.getNationalityFieldId()).as("nationality");
queryModel.selectExpr(intakeForm.getNationalityFieldId() + "==" + "\"" + intakeForm.getPalestinianId() + "\"").as("palestinian");
queryModel.selectExpr("\"" + intakeForm.getPalestinianId() + "\"" + "==" + intakeForm.getNationalityFieldId()).as("palestinianInverse");
ColumnSet columnSet = builder.build(queryModel);
ColumnView nationality = columnSet.getColumnView("nationality");
ColumnView palestinian = columnSet.getColumnView("palestinian");
ColumnView palestinianInverse = columnSet.getColumnView("palestinianInverse");
// Correct Tests
assertThat(nationality.get(1).toString(), equalTo(NAT_PAL));
assertThat(Boolean.valueOf(palestinian.get(1).toString()), equalTo(true));
assertThat(Boolean.valueOf(palestinianInverse.get(1).toString()), equalTo(true));
// Incorrect Tests
// Multiple selected values should return null
assertThat(nationality.get(5), equalTo(null));
}
use of org.activityinfo.model.query.ColumnView in project activityinfo by bedatadriven.
the class UnaryFunctionQueryTest method plusFunctionTest.
@Test
public void plusFunctionTest() {
QueryModel queryModel = new QueryModel(intakeForm.getFormId());
queryModel.selectExpr("+1").as("posOne");
queryModel.selectExpr("+1.0").as("posOneDouble");
queryModel.selectExpr("+1*2").as("posOneByTwo");
queryModel.selectExpr("+1.0*2.0").as("posOneByTwoDouble");
queryModel.selectExpr("2*(+1)").as("twoByPosOne");
queryModel.selectExpr("2.0*(+1.0)").as("twoByPosOneDouble");
ColumnSet columnSet = builder.build(queryModel);
ColumnView posOne = columnSet.getColumnView("posOne");
ColumnView posOneDouble = columnSet.getColumnView("posOneDouble");
ColumnView posOneByTwo = columnSet.getColumnView("posOneByTwo");
ColumnView posOneByTwoDouble = columnSet.getColumnView("posOneByTwoDouble");
ColumnView twoByPosOne = columnSet.getColumnView("twoByPosOne");
ColumnView twoByPosOneDouble = columnSet.getColumnView("twoByPosOneDouble");
assertThat(posOne.numRows(), equalTo(IntakeForm.ROW_COUNT));
assertThat(posOne.getDouble(0), equalTo(1.0));
assertThat(posOneDouble.getDouble(0), equalTo(1.0));
assertThat(posOneByTwo.getDouble(0), equalTo(2.0));
assertThat(posOneByTwoDouble.getDouble(0), equalTo(2.0));
assertThat(twoByPosOne.getDouble(0), equalTo(2.0));
assertThat(twoByPosOneDouble.getDouble(0), equalTo(2.0));
}
use of org.activityinfo.model.query.ColumnView in project activityinfo by bedatadriven.
the class UnaryFunctionQueryTest method minusFunctionTest.
@Test
public void minusFunctionTest() {
QueryModel queryModel = new QueryModel(intakeForm.getFormId());
queryModel.selectExpr("-1").as("negOne");
queryModel.selectExpr("-1.0").as("negOneDouble");
queryModel.selectExpr("-1*2").as("negOneByTwo");
queryModel.selectExpr("-1.0*2.0").as("negOneByTwoDouble");
queryModel.selectExpr("2*(-1)").as("twoByNegOne");
queryModel.selectExpr("2.0*(-1.0)").as("twoByNegOneDouble");
ColumnSet columnSet = builder.build(queryModel);
ColumnView negOne = columnSet.getColumnView("negOne");
ColumnView negOneDouble = columnSet.getColumnView("negOneDouble");
ColumnView negOneByTwo = columnSet.getColumnView("negOneByTwo");
ColumnView negOneByTwoDouble = columnSet.getColumnView("negOneByTwoDouble");
ColumnView twoByNegOne = columnSet.getColumnView("twoByNegOne");
ColumnView twoByNegOneDouble = columnSet.getColumnView("twoByNegOneDouble");
assertThat(negOne.numRows(), equalTo(IntakeForm.ROW_COUNT));
assertThat(negOne.getDouble(0), equalTo(-1.0));
assertThat(negOneDouble.getDouble(0), equalTo(-1.0));
assertThat(negOneByTwo.getDouble(0), equalTo(-2.0));
assertThat(negOneByTwoDouble.getDouble(0), equalTo(-2.0));
assertThat(twoByNegOne.getDouble(0), equalTo(-2.0));
assertThat(twoByNegOneDouble.getDouble(0), equalTo(-2.0));
}
use of org.activityinfo.model.query.ColumnView in project activityinfo by bedatadriven.
the class UnaryFunctionBase method columnApply.
@Override
public ColumnView columnApply(int numRows, List<ColumnView> arguments) {
checkArity(arguments, MAXARGS);
ColumnView unaryArgument = arguments.get(0);
return columnApply(numRows, unaryArgument);
}
use of org.activityinfo.model.query.ColumnView in project activityinfo by bedatadriven.
the class DateFunction method columnApply.
@Override
public ColumnView columnApply(int numRows, List<ColumnView> arguments) {
ColumnView year = arguments.get(0);
ColumnView month = arguments.get(1);
ColumnView day = arguments.get(2);
String[] dates = new String[numRows];
for (int i = 0; i < numRows; i++) {
dates[i] = apply(year.getDouble(i), month.getDouble(i), day.getDouble(i)).toString();
}
return new StringArrayColumnView(dates);
}
Aggregations