Ejemplo n.º 1
0
        private void verifyInclude(Dictionary <string, HDict> map, string query, string expected)
        {
            dbPather db = new dbPather(map);

            /* old Java style interface implementation the above replaces
             * db()
             * {
             *    public HDict find(String id) { return map.get(id); }
             * };
             */

            HFilter q = HFilter.make(query);

            string actual = "";

            // I don't like char loops like this but it is not incorrect either for
            //  sake of consistency with Java toolkit I have left it alone
            for (int c = 'a'; c <= 'c'; ++c)
            {
                string id = "" + (char)c;
                if (q.include(db.find(id), db))
                {
                    actual += actual.Length > 0 ? "," + id : id;
                }
            }
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 2
0
 public void testUnit()
 {
     verifyParse("dur < 5ns", HFilter.lt("dur", n(5, "ns")));
     verifyParse("dur < 10kg", HFilter.lt("dur", n(10, "kg")));
     verifyParse("dur < -9sec", HFilter.lt("dur", n(-9, "sec")));
     verifyParse("dur < 2.5hr", HFilter.lt("dur", n(2.5, "hr")));
 }
Ejemplo n.º 3
0
 public void testParens()
 {
     verifyParse("(a)", HFilter.has("a"));
     verifyParse("(a) and (b)", HFilter.has("a").and(HFilter.has("b")));
     verifyParse("( a )  and  ( b ) ", HFilter.has("a").and(HFilter.has("b")));
     verifyParse("(a or b) or (c == 3)", HFilter.has("a").or(HFilter.has("b")).or(HFilter.eq("c", n(3))));
 }
Ejemplo n.º 4
0
 public void testFloat()
 {
     verifyParse("num < 4.0", HFilter.lt("num", n(4f)));
     verifyParse("num <= -9.6", HFilter.le("num", n(-9.6f)));
     verifyParse("num > 400000", HFilter.gt("num", n(4e5f)));
     verifyParse("num >= 16000", HFilter.ge("num", n(1.6e+4f)));
     verifyParse("num >= 2.16", HFilter.ge("num", n(2.16)));
 }
Ejemplo n.º 5
0
 public void testBasics()
 {
     verifyParse("x", HFilter.has("x"));
     verifyParse("foo", HFilter.has("foo"));
     verifyParse("fooBar", HFilter.has("fooBar"));
     verifyParse("foo7Bar", HFilter.has("foo7Bar"));
     verifyParse("foo_bar->a", HFilter.has("foo_bar->a"));
     verifyParse("a->b->c", HFilter.has("a->b->c"));
     verifyParse("not foo", HFilter.missing("foo"));
 }
Ejemplo n.º 6
0
        public void testCombo()
        {
            HFilter isA = HFilter.has("a");
            HFilter isB = HFilter.has("b");
            HFilter isC = HFilter.has("c");
            HFilter isD = HFilter.has("d");

            verifyParse("a and b or c", (isA.and(isB)).or(isC));
            verifyParse("a or b and c", isA.or(isB.and(isC)));
            verifyParse("a and b or c and d", (isA.and(isB)).or(isC.and(isD)));
            verifyParse("(a and (b or c)) and d", isA.and(isB.or(isC)).and(isD));
            verifyParse("(a or (b and c)) or d", isA.or(isB.and(isC)).or(isD));
        }
Ejemplo n.º 7
0
 public void testInt()
 {
     verifyParse("num < 4", HFilter.lt("num", n(4)));
     verifyParse("num <= -99", HFilter.le("num", n(-99)));
 }
Ejemplo n.º 8
0
 public void testUri()
 {
     verifyParse("ref==`http://foo/?bar`", HFilter.eq("ref", HUri.make("http://foo/?bar")));
     verifyParse("ref->x==`file name`", HFilter.eq("ref->x", HUri.make("file name")));
     verifyParse("ref == `foo bar`", HFilter.eq("ref", HUri.make("foo bar")));
 }
Ejemplo n.º 9
0
 public void testStr()
 {
     verifyParse("x==\"hi\"", HFilter.eq("x", HStr.make("hi")));
     verifyParse("x!=\"\\\"hi\\\"\"", HFilter.ne("x", HStr.make("\"hi\"")));
     verifyParse("x==\"_\\u00a3_\\n_\"", HFilter.eq("x", HStr.make("_\u00a3_\n_"))); // Was abcd but changed to valid unicode pound
 }
Ejemplo n.º 10
0
 public void testBool()
 {
     verifyParse("x->y==true", HFilter.eq("x->y", HBool.TRUE));
     verifyParse("x->y!=false", HFilter.ne("x->y", HBool.FALSE));
 }
Ejemplo n.º 11
0
 public void testZincOnlyLiteralsDontWork()
 {
     Assert.IsNull(HFilter.make("x==T", false));
     Assert.IsNull(HFilter.make("x==F", false));
     Assert.IsNull(HFilter.make("x==F", false));
 }
Ejemplo n.º 12
0
 public void testIdentity()
 {
     Assert.IsTrue(HFilter.has("a").hequals(HFilter.has("a")));
     Assert.IsFalse(HFilter.has("a").hequals(HFilter.has("b")));
 }
Ejemplo n.º 13
0
 public void testDateTime()
 {
     verifyParse("foo < 2009-10-30", HFilter.lt("foo", HDate.make("2009-10-30")));
     verifyParse("foo < 08:30:00", HFilter.lt("foo", HTime.make("08:30:00")));
     verifyParse("foo < 13:00:00", HFilter.lt("foo", HTime.make("13:00:00")));
 }
Ejemplo n.º 14
0
        void verifyParse(string s, HFilter expected)
        {
            HFilter actual = HFilter.make(s);

            Assert.IsTrue(actual.hequals(expected));
        }
Ejemplo n.º 15
0
 public void testOr()
 {
     verifyParse("a or b", HFilter.has("a").or(HFilter.has("b")));
     verifyParse("a or b or c == 3", HFilter.has("a").or(HFilter.has("b").or(HFilter.eq("c", n(3)))));
 }
Ejemplo n.º 16
0
 public void testAnd()
 {
     verifyParse("a and b", HFilter.has("a").and(HFilter.has("b")));
     verifyParse("a and b and c == 3", HFilter.has("a").and(HFilter.has("b").and(HFilter.eq("c", n(3)))));
 }
Ejemplo n.º 17
0
 public void testRef()
 {
     verifyParse("author == @xyz", HFilter.eq("author", HRef.make("xyz")));
     verifyParse("author==@xyz:foo.bar", HFilter.eq("author", HRef.make("xyz:foo.bar")));
 }