static void testLocationOpInPredicate() { String query = "Edge(int a:0..100, (int b)). \n" + "Attr(int a,int b).\n" + "Attr(a,b) :- Edge(a,b).\n"; Parser p = new Parser(); TestAnalysis an; try { p.parse(query); an = new TestAnalysis(p); an.setDistributed(); an.run(); Assert.die("should not reach here"); } catch (ParseException e) { /* expected */ } query = "Edge(int a:0..100, (int b)). \n" + "Attr(int a,int b).\n" + "Attr(a, b) :- Edge(a, b).\n"; p = new Parser(); try { p.parse(query); an = new TestAnalysis(p); an.setDistributed(); an.run(); Assert.die("should not reach here"); } catch (ParseException e) { /* expected */ } }
static void testDistRule() { String query = "Edge(int a:0..100,(int b)).\n" + "InEdge(int a:0..100,(int b)).\n" + "Edge(s,t) :- s=1, t=99.\n" + "InEdge(t,s) :- Edge(s,t).\n" + "?-InEdge(s,t).\n"; Parser p = new Parser(); p.parse(query); TestAnalysis an = new TestAnalysis(p); an.setDistributed(); an.run(); for (Table t : an.getRemoteTables()) { Assert.true_(t instanceof RemoteHeadTable); Column c = t.getColumn(0); Assert.not_true(c.hasRange(), "RemoteTables are not array-tables"); } }