Viewing file: test_set_functions.py (7.91 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from Ft.Rdf.Parsers import Versa from Ft.Rdf.Parsers.Versa import SetFunctions
import test_helper
def test_all(tester,model):
tester.startGroup("all")
tester.startTest("all()")
exp = Versa.Compile('all()')
nsMap = {'ft':'http://fourthought.com#', 'foo':'http://foo.com#', 'dc':'http://purl.org/dc/elements/1.1#', } con = Versa.CreateContext(model=model, nsMapping = nsMap)
tester.compare(1,isinstance(exp,SetFunctions.AllFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compareIn(res,"http://fourthought.com") tester.compareIn(res,"http://fourthought.com#Male") tester.compareIn(res,"http://fourthought.com#Female") tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.compareIn(res,"http://foo.com#T1") tester.compareIn(res,"http://foo.com#T2") tester.testDone()
tester.groupDone()
def test_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)
tester.startGroup('type') tester.startTest("type(ft:Male)") exp = Versa.Compile('type(ft:Male)') tester.compare(1,isinstance(exp,SetFunctions.TypeFunction)) res = exp.evaluate(con) tester.compare(1, len(res)) tester.compareIn(res,"http://foo.com#molson") tester.testDone()
tester.startTest("type(ft:Person)") exp = Versa.Compile('type(ft:Person)') tester.compare(1,isinstance(exp,SetFunctions.TypeFunction)) res = exp.evaluate(con) tester.compare(2, len(res)) tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.testDone() tester.groupDone()
def test_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)
tester.startGroup("resource") exp = "resource(foo:molson)" tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.ResourceFunction)) res = exp.evaluate(con) tester.compare(res,"http://foo.com#molson") tester.testDone()
tester.groupDone()
def test_filter(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)
tester.startGroup('filter') exp = "filter(all(),*)" tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.FilterFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compareIn(res,"http://fourthought.com") tester.compareIn(res,"http://fourthought.com#Male") tester.compareIn(res,"http://fourthought.com#Female") tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.compareIn(res,"http://foo.com#T1") tester.compareIn(res,"http://foo.com#T2") tester.testDone()
exp = "all()[*]" #Short cut for the above expression tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.FilterFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compareIn(res,"http://fourthought.com") tester.compareIn(res,"http://fourthought.com#Male") tester.compareIn(res,"http://fourthought.com#Female") tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.compareIn(res,"http://foo.com#T1") tester.compareIn(res,"http://foo.com#T2") tester.testDone()
exp = "filter(all(),*,*)" tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.FilterFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compareIn(res,"http://fourthought.com") tester.compareIn(res,"http://fourthought.com#Male") tester.compareIn(res,"http://fourthought.com#Female") tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.compareIn(res,"http://foo.com#T1") tester.compareIn(res,"http://foo.com#T2") tester.testDone()
exp = "all()[*][*]" #Short cut for the above expression tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.FilterFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compareIn(res,"http://fourthought.com") tester.compareIn(res,"http://fourthought.com#Male") tester.compareIn(res,"http://fourthought.com#Female") tester.compareIn(res,"http://foo.com#molson") tester.compareIn(res,"http://foo.com#jolson") tester.compareIn(res,"http://foo.com#T1") tester.compareIn(res,"http://foo.com#T2") tester.testDone()
tester.groupDone()
def test_map(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)
tester.startGroup("distribute")
exp = "distribute(all(),'.')" tester.startTest(exp) tester.warning("We need to decide what to do with .") tester.testDone() tester.groupDone() return exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.MapFunction)) res = exp.evaluate(con) tester.compare(5, len(res)) expected = ["http://fourthought.com", "http://fourthought.com#Male", "http://fourthought.com#Female", "http://foo.com#molson", "http://foo.com#jolson"]
for sub in res: tester.compareIn(expected,sub[0][0]) tester.testDone()
exp = "distribute(all(),'.','.')" tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.MapFunction)) res = exp.evaluate(con) tester.compare(5, len(res)) expected = ["http://fourthought.com", "http://fourthought.com#Male", "http://fourthought.com#Female", "http://foo.com#molson", "http://foo.com#jolson"] for sub in res: tester.compareIn(expected,sub[0][0]) tester.compareIn(expected,sub[1][0]) tester.testDone()
tester.groupDone()
def test_sort(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)
tester.startGroup('sort')
exp = "sort(all())" tester.startTest(exp) exp = Versa.Compile(exp) tester.compare(1,isinstance(exp,SetFunctions.SortFunction)) res = exp.evaluate(con) tester.compare(7, len(res)) tester.compare("http://foo.com#T1",res[0]) tester.compare("http://foo.com#T2",res[1]) tester.compare("http://foo.com#jolson",res[2]) tester.compare("http://foo.com#molson",res[3]) tester.compare("http://fourthought.com",res[4]) tester.compare("http://fourthought.com#Female",res[5]) tester.compare("http://fourthought.com#Male",res[6]) tester.testDone()
tester.groupDone()
def Test(tester): model = test_helper.init(tester) test_all(tester,model) test_type(tester,model) test_resource(tester,model) test_filter(tester,model) test_map(tester,model) test_sort(tester,model)
if __name__ == '__main__': from Ft.Lib.TestSuite import Tester tester = Tester.Tester() Test(tester)
|