Viewing file: test_boolean_functions.py (3.9 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from Ft.Rdf.Parsers import Versa from Ft.Rdf.Parsers.Versa import BooleanFunctions, Traversal
import test_helper
def test_is_resource(tester,model):
nsMap = {'ft':'http://fourthought.com#', 'foo':'http://foo.com#', 'dc':'http://purl.org/dc/elements/1.1#', }
con = Versa.CreateContext(model = model, nsMapping = nsMap)
exp = "all()-ft:spouse->isResource()" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, len(res)) tester.compareIn(res, u"http://foo.com#jolson") tester.testDone()
exp = "isResource(resource(foo:molson))" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, res) tester.testDone()
exp = "isResource(resource(foo:molson)-dc:Title->*)" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(0, res) tester.testDone()
def test_is_type(tester,model):
nsMap = {'ft':'http://fourthought.com#', 'foo':'http://foo.com#', 'dc':'http://purl.org/dc/elements/1.1#', }
con = Versa.CreateContext(model = model, nsMapping = nsMap)
exp = "all()-ft:spouse->isType(ft:Female)" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, len(res)) tester.compareIn(res, u"http://foo.com#jolson") tester.testDone()
exp = "isType(resource(foo:molson), ft:Person)" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, res) tester.testDone()
exp = "isType(resource(foo:molson)-ft:spouse->*, ft:Male)" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(0, res) tester.testDone()
def test_is_literal(tester,model):
nsMap = {'ft':'http://fourthought.com#', 'foo':'http://foo.com#', 'dc':'http://purl.org/dc/elements/1.1#', }
con = Versa.CreateContext(model = model, nsMapping = nsMap)
exp = "all()-ft:spouse->isLiteral()" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(0, len(res)) tester.testDone()
exp = "all()-ft:spouse->*-dc:Title->isLiteral()" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, len(res)) tester.compareIn(res, u'Jessica Olson') tester.testDone()
exp = "isLiteral(resource(foo:molson)-dc:Title->*)" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, res) tester.testDone()
exp = "isLiteral(resource(foo:molson))" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(0, res) tester.testDone()
def test_and(tester,model):
nsMap = {'ft':'http://fourthought.com#', 'foo':'http://foo.com#', 'dc':'http://purl.org/dc/elements/1.1#', 'vcard':'http://4suite.org/nexus/rdfs/vcard#', }
con = Versa.CreateContext(model = model, nsMapping = nsMap)
tester.startGroup("and")
#Why start easy :) exp = "(resource(@'http://foo.com#molson')-ft:telephone->and(isType(vcard:work), isType(vcard:voice)))-rdf:value->*" tester.startTest(exp) exp = Versa.Compile(exp) res = exp.evaluate(con) tester.compare(1, len(res)) tester.compareIn(res, u'555-1212') tester.testDone()
tester.groupDone()
def Test(tester): model = test_helper.init(tester) test_is_resource(tester,model) test_is_type(tester,model) test_is_literal(tester,model) test_and(tester,model)
if __name__ == '__main__': from Ft.Lib.TestSuite import Tester tester = Tester.Tester() Test(tester)
|