/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.sparql.syntax;
import junit.framework.TestCase ;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.algebra.op.OpLabel ;
import org.apache.jena.sparql.algebra.op.OpNull ;
import org.apache.jena.sparql.algebra.op.OpTable ;
import org.apache.jena.sparql.expr.E_IsNumeric ;
import org.apache.jena.sparql.expr.E_SameTerm ;
import org.apache.jena.sparql.expr.Expr ;
import org.apache.jena.sparql.sse.Item ;
import org.apache.jena.sparql.sse.SSE ;
import org.apache.jena.sparql.sse.builders.BuilderNode ;
import org.junit.Test ;
public class TestSSE_Builder extends TestCase
{
@Test public void test_01() { SSE.parseTriple("[triple ?s ?p ?o]") ; }
@Test public void test_02() { SSE.parseTriple("[?s ?p ?o]") ; }
@Test public void test_03() { SSE.parseTriple("[?s ?p ?o]") ; }
@Test public void test_04() { SSE.parseTriple("(?s ?p ?o)") ; }
@Test public void test_05() { SSE.parseQuad("(_ ?s ?p ?o)") ; }
@Test public void test_06() { SSE.parseQuad("(quad _ ?s ?p ?o)") ; }
@Test public void test_07() { SSE.parseExpr("1") ; }
@Test public void test_08() { SSE.parseExpr("(+ 1 2)") ; }
@Test public void testOp_01() { opSame("(null)") ; }
@Test public void testOp_02() { opSame("(null)", OpNull.create()) ; }
@Test public void testOp_03() { opSame("(bgp [triple ?s ?p ?o])") ; }
@Test public void testOp_04() { opSame("(label 'ABC' (table unit))", OpLabel.create("ABC", OpTable.unit())) ; }
private static void opSame(String str) {
opSame(str, SSE.parseOp(str)) ;
}
private static void opSame(String str, Op other) {
Op op = SSE.parseOp(str) ;
assertEquals(op, other) ;
}
@Test
public void testBuildInt_01() {
Item item = SSE.parseItem("1") ;
int i = BuilderNode.buildInt(item) ;
assertEquals(1, i) ;
}
@Test
public void testBuildInt_02() {
Item item = SSE.parseItem("1") ;
int i = BuilderNode.buildInt(item, 23) ;
assertEquals(1, i) ;
}
@Test
public void testBuildInt_03() {
Item item = SSE.parseItem("_") ;
int i = BuilderNode.buildInt(item, 23) ;
assertEquals(23, i) ;
}
@Test
public void testBuildLong_01() {
Item item = SSE.parseItem("100000000000") ;
long i = BuilderNode.buildLong(item) ;
assertEquals(100000000000L, i) ;
}
@Test
public void testBuildLong_02() {
Item item = SSE.parseItem("100000000000") ;
long i = BuilderNode.buildLong(item, 23) ;
assertEquals(100000000000L, i) ;
}
@Test
public void testBuildLong_03() {
Item item = SSE.parseItem("_") ;
long i = BuilderNode.buildLong(item, 23) ;
assertEquals(23, i) ;
}
@Test
public void testBuildExpr_01() {
Expr e = SSE.parseExpr("(sameTerm (?x) (?y))") ;
assertTrue(e instanceof E_SameTerm) ;
}
@Test
public void testBuildExpr_02() {
Expr e = SSE.parseExpr("(isNumeric ?x)") ;
assertTrue(e instanceof E_IsNumeric) ;
}
private static void testExprForms(String str1, String str2) {
Expr e1 = SSE.parseExpr(str1) ;
Expr e2 = SSE.parseExpr(str2) ;
assertEquals(str1+" "+str2, e1, e2) ;
}
@Test
public void testBuildExpr_03() {
testExprForms("(add ?x ?y)",
"(+ ?x ?y)") ;
}
@Test
public void testBuildExpr_04() {
testExprForms("(subtract ?x ?y)",
"(- ?x ?y)") ;
}
@Test
public void testBuildExpr_05() {
testExprForms("(multiply ?x ?y)",
"(* ?x ?y)") ;
}
@Test
public void testBuildExpr_06() {
testExprForms("(divide ?x ?y)",
"(/ ?x ?y)") ;
}
@Test
public void testBuildExpr_07() {
testExprForms("(lt ?x ?y)",
"(< ?x ?y)") ;
}
@Test
public void testBuildExpr_08() {
testExprForms("(le ?x ?y)",
"(<= ?x ?y)") ;
}
@Test
public void testBuildExpr_09() {
testExprForms("(gt ?x ?y)",
"(> ?x ?y)") ;
}
@Test
public void testBuildExpr_10() {
testExprForms("(ge ?x ?y)",
"(>= ?x ?y)") ;
}
@Test
public void testBuildExpr_11() {
testExprForms("(unaryplus ?x)",
"(+ ?x)") ;
}
@Test
public void testBuildExpr_12() {
testExprForms("(unaryminus ?x)",
"(- ?x)") ;
}
@Test
public void testBuildExpr_13() {
testExprForms("(eq ?x ?y)",
"(= ?x ?y)") ;
}
@Test
public void testBuildExpr_14() {
testExprForms("(ne ?x ?y)",
"(!= ?x ?y)") ;
}
}