#(c): Tuomas J. Lukka import gzz spanMaker = gzz.media.impl.ScrollSpanMaker() enfiladeMaker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker() XuLink = gzz.index.XuLink def c(coll): """Collection into sorted list""" l = [] for i in coll: l.append(i) l.sort() return l def test1(): span1 = spanMaker.makeTextSpan("ABC") span2 = spanMaker.makeTextSpan("DEF") enf1 = enfiladeMaker.makeEnfilade(span1) enf2 = enfiladeMaker.makeEnfilade(span2) # Link A-D link1 = XuLink(enf1.sub(0,1), enf2.sub(0,1)) xuindexer.add(link1) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf2.sub(0,1)))) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf1.sub(1,2)))) failUnlessEqual([link1], c(xuindexer.getForwardIndex().getMatches(enf1.sub(0,1)))) # Link C-A link2 = XuLink(enf1.sub(1,2), enf1.sub(0,1)) xuindexer.add(link2) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf2.sub(0,1)))) failUnlessEqual([link2], c(xuindexer.getForwardIndex().getMatches(enf1.sub(1,2)))) failUnlessEqual([link1], c(xuindexer.getForwardIndex().getMatches(enf1.sub(0,1)))) xuindexer.remove(link1) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf2.sub(0,1)))) failUnlessEqual([link2], c(xuindexer.getForwardIndex().getMatches(enf1.sub(1,2)))) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf1.sub(0,1)))) xuindexer.remove(link2) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf2.sub(0,1)))) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf1.sub(1,2)))) failUnlessEqual([], c(xuindexer.getForwardIndex().getMatches(enf1.sub(0,1)))) # vim: set syntax=python :