int main(int argc, char ** argv) { DebugInfo::set_visible(true); typedef std::vector<Checker *> V_VEC; V_VEC checkers; checkers.push_back(new IntChecker()); //checkers.push_back(new IntChecker(0)); //checkers.push_back(new IntChecker(0, 100)); //checkers.push_back(new FloatChecker()); checkers.push_back(new FloatChecker(0.5)); //checkers.push_back(new FloatChecker(0.5, 9.5)); //checkers.push_back(new StrChecker()); //checkers.push_back(new StrChecker(2)); checkers.push_back(new StrChecker(2, 7)); checkers.push_back(new BoolChecker()); checkers.push_back(new ListChecker()); //checkers.push_back(new ListChecker(2)); //checkers.push_back(new ListChecker(2, 7)); checkers.push_back(new TupleChecker(2, 7)); checkers.push_back(new DictChecker(2, 7)); checkers.push_back(new IntListChecker()); checkers.push_back(new FloatListChecker()); checkers.push_back(new StrListChecker()); checkers.push_back(new BoolListChecker()); checkers.push_back(new PassChecker()); List l; l.append(-10); l.append("Hi"); l.append(2.3); checkers.push_back(new OptionChecker(l)); typedef std::vector<Object> O_VEC; O_VEC objects; objects.push_back(Int(-10)); //objects.push_back(Int(10)); //objects.push_back(Int(1000)); objects.push_back(Float(0.0)); //objects.push_back(Float(0.3)); //objects.push_back(Float(9.1)); objects.push_back(Str("H")); objects.push_back(Str("Hi")); objects.push_back(Str("Hello, world!")); objects.push_back(Bool(true)); //objects.push_back(unrepr("[1]")); //objects.push_back(unrepr("[1, 2, 3, 4, 5]")); //objects.push_back(unrepr("[0.1, 0.2, 0.3, 0.4, 0.5]")); //objects.push_back(unrepr("[\"a\", \"b\", \"c\", \"d\", \"e\"]")); //objects.push_back(unrepr("(2, 3, 4.5, 4)")); //objects.push_back(unrepr("{\"a\":2, \"b\":0.3, \"c\":.5, \"d\": 0.6}")); objects.push_back(unrepr("[1, 0.2, \"three\", True]")); for(V_VEC::const_iterator iv = checkers.begin(); iv != checkers.end(); ++iv) { Checker * v = *iv; cout << "=== " << *v << endl; for(O_VEC::iterator io = objects.begin(); io != objects.end(); ++io) { Object & p = *io; cout << " " << *io << " --> " << v->validate(p) << endl; /* try { v->check(p); } catch(EXC_T & e) { cerr << "ERR: " << e.what() << endl; } */ } } for(V_VEC::iterator iv = checkers.begin(); iv != checkers.end(); ++iv) { //cout << "deleting " << *iv << "..." << endl; delete *iv; } }