Search in sources :

Example 26 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class ExpressionTest method testConstant.

@Test
public void testConstant() throws InvalidExpressionException {
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    Entity tree = EntityBuilder.addEntity(plot, "tree");
    EntityBuilder.addValue(tree, "dbh", 54.2);
    String expr = "543534";
    Object object = evaluateExpression(expr);
    Assert.assertEquals(Double.valueOf(expr), object);
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Example 27 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class ExpressionTest method testMissingValueExpressionWithOperation.

@Test
public void testMissingValueExpressionWithOperation() throws InvalidExpressionException {
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    Entity tree = EntityBuilder.addEntity(plot, "tree");
    EntityBuilder.addValue(tree, "dbh", 54.2);
    String expr = "plot[25]/tree[3]/dbh/parent()/dbh + 4";
    Object object = evaluateExpression(expr);
    Assert.assertEquals(4d, object);
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Example 28 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class ExpressionTest method testAddWithParentFuncExpression.

@Test
public void testAddWithParentFuncExpression() throws InvalidExpressionException {
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    Entity tree = EntityBuilder.addEntity(plot, "tree");
    EntityBuilder.addValue(tree, "dbh", 54.2);
    String expr = "plot[1]/tree[1]/dbh/parent()/dbh + 1";
    Object object = evaluateExpression(expr);
    Assert.assertEquals(55.2, object);
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Example 29 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class IDMFunctionsTest method testDistinctValuesFunctionWithDuplicates.

@Test
public void testDistinctValuesFunctionWithDuplicates() throws InvalidExpressionException {
    Entity plot1 = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addValue(plot1, "no", new Code("1"));
    Entity plot2 = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addValue(plot2, "no", new Code("2"));
    Entity plot3 = EntityBuilder.addEntity(cluster, "plot");
    // duplicate value
    EntityBuilder.addValue(plot3, "no", new Code("1"));
    String expr = ExpressionFactory.IDM_PREFIX + ":" + "distinct-values(plot/no)";
    Object result = evaluateExpression(expr);
    Assert.assertEquals(Arrays.asList("1", "2"), result);
}
Also used : Entity(org.openforis.idm.model.Entity) Code(org.openforis.idm.model.Code) Test(org.junit.Test)

Example 30 with Entity

use of org.openforis.idm.model.Entity in project collect by openforis.

the class IDMFunctionsTest method testIndexAndPosition.

@Test
public void testIndexAndPosition() throws InvalidExpressionException {
    Entity plot1 = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addValue(plot1, "no", new Code("1"));
    Entity plot2 = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addValue(plot2, "no", new Code("2"));
    Assert.assertEquals(Integer.valueOf(0), evaluateExpression(cluster, "idm:index(plot[1])"));
    Assert.assertEquals(Integer.valueOf(0), evaluateExpression(cluster, "idm:index(plot[no='1'])"));
    Assert.assertEquals(Integer.valueOf(1), evaluateExpression(cluster, "idm:index(plot[2])"));
    Assert.assertEquals(Integer.valueOf(1), evaluateExpression(cluster, "idm:index(plot[no='2'])"));
    Assert.assertEquals(Integer.valueOf(1), evaluateExpression(cluster, "idm:position(plot[1])"));
    Assert.assertEquals(Integer.valueOf(2), evaluateExpression(cluster, "idm:position(plot[2])"));
    Assert.assertEquals(Integer.valueOf(1), evaluateExpression(plot2, "idm:index()"));
}
Also used : Entity(org.openforis.idm.model.Entity) Code(org.openforis.idm.model.Code) Test(org.junit.Test)

Aggregations

Entity (org.openforis.idm.model.Entity)164 Test (org.junit.Test)88 CollectRecord (org.openforis.collect.model.CollectRecord)37 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)36 Code (org.openforis.idm.model.Code)35 RealAttribute (org.openforis.idm.model.RealAttribute)25 CollectIntegrationTest (org.openforis.collect.CollectIntegrationTest)23 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)19 Node (org.openforis.idm.model.Node)19 AbstractTest (org.openforis.idm.AbstractTest)18 Date (org.openforis.idm.model.Date)16 ArrayList (java.util.ArrayList)14 CodeAttribute (org.openforis.idm.model.CodeAttribute)14 Time (org.openforis.idm.model.Time)12 GregorianCalendar (java.util.GregorianCalendar)9 ParsingError (org.openforis.collect.io.metadata.parsing.ParsingError)9 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)9 TextAttribute (org.openforis.idm.model.TextAttribute)9 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)8 Attribute (org.openforis.idm.model.Attribute)8