Search in sources :

Example 66 with RepositoryContext

use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.

the class PathIterationTests method test_2.

/**
 * Test 2.
 */
@Test
@Order(2)
void test_2() {
    try {
        PathElement element = PathParser.parsePathPattern(repositoryContext, ":hasProductBatteryLimit{1, 4}/:massThroughput{1,2}");
        assertEquals("<http://default/hasProductBatteryLimit>{1,4} / <http://default/massThroughput>{1,2}", element.toString());
        assertEquals("{0=2, 1=3, 2=3, 3=4, 4=4, 5=5, 6=5, 7=6}", element.getIterations().toString());
        Iterations sortedIterations = element.getIterations().sortByPathLength();
        assertEquals("{0=2, 1=3, 2=3, 3=4, 4=4, 5=5, 6=5, 7=6}", sortedIterations.toString());
        assertEquals("({1,1,4}/{1,2,2}){1,1,1}", element.getPathShareString(1));
        assertEquals("({1,2,4}/{1,2,2}){1,1,1}", element.getPathShareString(3));
    } catch (Exception e) {
        assertEquals("", e.getMessage());
    }
}
Also used : PathElement(com.inova8.pathql.element.PathElement) Iterations(com.inova8.pathql.element.Iterations) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Order(org.junit.jupiter.api.Order) Test(org.junit.jupiter.api.Test)

Example 67 with RepositoryContext

use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.

the class PathIterationTests method test_0.

/**
 * Test 0.
 */
@Test
@Order(0)
void test_0() {
    try {
        PathElement element = PathParser.parsePathPattern(repositoryContext, ":hasProductBatteryLimit{1, 4}");
        assertEquals("<http://default/hasProductBatteryLimit>{1,4}", element.toString());
        ;
        assertEquals("{0=1, 1=2, 2=3, 3=4}", element.getIterations().toString());
        Iterations sortedIterations = element.getIterations().sortByPathLength();
        assertEquals("{0=1, 1=2, 2=3, 3=4}", sortedIterations.toString());
        assertEquals("{1,2,4}", element.getPathShareString(1));
        assertEquals("{1,4,4}", element.getPathShareString(3));
    } catch (Exception e) {
        assertEquals("", e.getMessage());
    }
}
Also used : PathElement(com.inova8.pathql.element.PathElement) Iterations(com.inova8.pathql.element.Iterations) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Order(org.junit.jupiter.api.Order) Test(org.junit.jupiter.api.Test)

Example 68 with RepositoryContext

use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.

the class PathIterationTests method test_3.

/**
 * Test 3.
 */
@Test
@Order(3)
void test_3() {
    try {
        PathElement element = PathParser.parsePathPattern(repositoryContext, ":hasProductBatteryLimit{1, 2}/:massThroughput{1,2}/:massThroughput{1,2}");
        assertEquals("<http://default/hasProductBatteryLimit>{1,2} / <http://default/massThroughput>{1,2} / <http://default/massThroughput>{1,2}", element.toString());
        assertEquals("{0=3, 1=4, 2=4, 3=5, 4=4, 5=5, 6=5, 7=6}", element.getIterations().toString());
        Iterations sortedIterations = element.getIterations().sortByPathLength();
        assertEquals("{0=3, 1=4, 2=4, 4=4, 3=5, 5=5, 6=5, 7=6}", sortedIterations.toString());
        assertEquals("(({1,1,2}/{1,1,2}){1,1,1}/{1,2,2}){1,1,1}", element.getPathShareString(1));
        assertEquals("(({1,1,2}/{1,2,2}){1,1,1}/{1,2,2}){1,1,1}", element.getPathShareString(3));
    } catch (Exception e) {
        assertEquals("", e.getMessage());
    }
}
Also used : PathElement(com.inova8.pathql.element.PathElement) Iterations(com.inova8.pathql.element.Iterations) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Order(org.junit.jupiter.api.Order) Test(org.junit.jupiter.api.Test)

Example 69 with RepositoryContext

use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.

the class PathIterationTests method test_4.

/**
 * Test 4.
 */
@Test
@Order(4)
void test_4() {
    try {
        PathElement element = PathParser.parsePathPattern(repositoryContext, "((^:hasProductBatteryLimit/:hasUnit){1, 2}/:massThroughput){1,3}");
        assertEquals("((^<http://default/hasProductBatteryLimit> / <http://default/hasUnit>){1,2} / <http://default/massThroughput>){1,3}", element.toString());
        assertEquals("{0=3, 1=5, 2=6, 3=10, 4=9, 5=15}", element.getIterations().toString());
        Iterations sortedIterations = element.getIterations().sortByPathLength();
        assertEquals("{0=3, 1=5, 2=6, 4=9, 3=10, 5=15}", sortedIterations.toString());
        assertEquals("(({1,1,1}/{1,1,1}){1,2,2}/{1,1,1}){1,1,3}", element.getPathShareString(1));
        assertEquals("(({1,1,1}/{1,1,1}){1,1,2}/{1,1,1}){1,2,3}", element.getPathShareString(2));
        assertEquals("(({1,1,1}/{1,1,1}){1,2,2}/{1,1,1}){1,2,3}", element.getPathShareString(3));
        assertEquals("(({1,1,1}/{1,1,1}){1,1,2}/{1,1,1}){1,3,3}", element.getPathShareString(4));
        assertEquals("(({1,1,1}/{1,1,1}){1,2,2}/{1,1,1}){1,3,3}", element.getPathShareString(5));
    } catch (Exception e) {
        assertEquals("", e.getMessage());
    }
}
Also used : PathElement(com.inova8.pathql.element.PathElement) Iterations(com.inova8.pathql.element.Iterations) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Order(org.junit.jupiter.api.Order) Test(org.junit.jupiter.api.Test)

Example 70 with RepositoryContext

use of com.inova8.pathql.context.RepositoryContext in project com.inova8.intelligentgraph by peterjohnlawrence.

the class PathIterationTests method test_5.

/**
 * Test 5.
 */
@Test
@Order(5)
void test_5() {
    try {
        PathElement element = PathParser.parsePathPattern(repositoryContext, ":hasProductBatteryLimit{0, 4}/:massThroughput{1,2}");
        assertEquals("<http://default/hasProductBatteryLimit>{0,4} / <http://default/massThroughput>{1,2}", element.toString());
        assertEquals("{0=1, 1=2, 2=2, 3=3, 4=3, 5=4, 6=4, 7=5, 8=5, 9=6}", element.getIterations().toString());
        Iterations sortedIterations = element.getIterations().sortByPathLength();
        assertEquals("{0=1, 1=2, 2=2, 3=3, 4=3, 5=4, 6=4, 7=5, 8=5, 9=6}", sortedIterations.toString());
        assertEquals("({0,0,4}/{1,2,2}){1,1,1}", element.getPathShareString(1));
        assertEquals("({0,1,4}/{1,2,2}){1,1,1}", element.getPathShareString(3));
    } catch (Exception e) {
        assertEquals("", e.getMessage());
    }
}
Also used : PathElement(com.inova8.pathql.element.PathElement) Iterations(com.inova8.pathql.element.Iterations) TestMethodOrder(org.junit.jupiter.api.TestMethodOrder) Order(org.junit.jupiter.api.Order) Test(org.junit.jupiter.api.Test)

Aggregations

PathElement (com.inova8.pathql.element.PathElement)116 Order (org.junit.jupiter.api.Order)110 Test (org.junit.jupiter.api.Test)110 TestMethodOrder (org.junit.jupiter.api.TestMethodOrder)110 RecognitionException (org.antlr.v4.runtime.RecognitionException)78 PathPatternException (com.inova8.pathql.processor.PathPatternException)26 PathTupleExpr (com.inova8.intelligentgraph.path.PathTupleExpr)10 PathPatternVisitor (com.inova8.pathql.processor.PathPatternVisitor)8 RepositoryContext (com.inova8.pathql.context.RepositoryContext)7 Iterations (com.inova8.pathql.element.Iterations)7 PathPatternLexer (com.inova8.pathql.pathPattern.PathPatternLexer)7 PathPatternParser (com.inova8.pathql.pathPattern.PathPatternParser)7 CommonTokenStream (org.antlr.v4.runtime.CommonTokenStream)7 BeforeAll (org.junit.jupiter.api.BeforeAll)7 PathBinding (com.inova8.intelligentgraph.path.PathBinding)5 PathPatternContext (com.inova8.pathql.pathPattern.PathPatternParser.PathPatternContext)4 CharStream (org.antlr.v4.runtime.CharStream)4 PathErrorListener (com.inova8.pathql.processor.PathErrorListener)2 IriRefValueElement (com.inova8.pathql.element.IriRefValueElement)1 PredicateElement (com.inova8.pathql.element.PredicateElement)1