use of org.activityinfo.model.query.QueryModel 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.QueryModel 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.QueryModel in project activityinfo by bedatadriven.
the class UnaryFunctionQueryTest method multiplyFunctionTest.
@Test
public void multiplyFunctionTest() {
QueryModel queryModel = new QueryModel(intakeForm.getFormId());
makeQueryExprAndExpectColumnModelException(queryModel, "*1", "multOne");
makeQueryExprAndExpectColumnModelException(queryModel, "*1.0", "multOneDouble");
makeQueryExprAndExpectColumnModelException(queryModel, "1*", "oneMult");
makeQueryExprAndExpectColumnModelException(queryModel, "1.0*", "oneMultDouble");
}
use of org.activityinfo.model.query.QueryModel in project activityinfo by bedatadriven.
the class AnalysisResult method computePoints.
private static Observable<MeasureResultSet> computePoints(FormStore formStore, EffectiveMeasure measure) {
QueryModel queryModel = new QueryModel(measure.getFormId());
queryModel.selectExpr(measure.getModel().getFormula()).as("value");
for (EffectiveMapping dim : measure.getDimensions()) {
queryModel.addColumns(dim.getRequiredColumns());
}
Observable<ColumnSet> columnSet = formStore.query(queryModel);
Observable<MeasureResultSet> resultSet = columnSet.transform(columns -> {
MeasureResultBuilder builder = new MeasureResultBuilder(measure, columns);
builder.execute();
return builder.getResult();
});
return resultSet;
}
use of org.activityinfo.model.query.QueryModel in project activityinfo by bedatadriven.
the class OfflineStoreGwtTest method verifyWeCanQuery.
private Promise<Void> verifyWeCanQuery(Void input) {
QueryModel queryModel = new QueryModel(survey.getFormId());
queryModel.selectResourceId().as("id");
queryModel.selectExpr(survey.getGenderFieldId().asString()).as("gender");
queryModel.selectExpr(survey.getAgeFieldId().asString()).as("age");
queryModel.selectExpr(survey.getNameFieldId().asString()).as("name");
return offlineStore.query(queryModel).once().then(new Function<ColumnSet, Void>() {
@Nullable
@Override
public Void apply(@Nullable ColumnSet columnSet) {
assertEquals(survey.getRowCount() + 2, columnSet.getNumRows());
return null;
}
});
}
Aggregations