/* QueryUtils(Test) - checking various utils provided for dealing with config queries Copyright (C) 2008, Hermann Vosseler   **Lumiera** is free software; you can redistribute it and/or modify it   under the terms of the GNU General Public License as published by the   Free Software Foundation; either version 2 of the License, or (at your   option) any later version. See the file COPYING for further details. * *****************************************************************/ /** @file query-utils-test.cpp ** unit test \ref QueryUtils_test */ #include "lib/test/run.hpp" #include "lib/util.hpp" #include "lib/util-foreach.hpp" #include "lib/query-util.hpp" #include "lib/cmdline.hpp" #include "lib/query-diagnostics.hpp" #include "lib/format-cout.hpp" #include using lib::Cmdline; using util::isnil; using util::contains; using util::for_each; using std::placeholders::_1; using std::bind; using std::string; namespace lib { namespace query { namespace test{ struct Thing { virtual ~Thing() {} // add RTTI for Query.asKey(); }; /********************************************************************//** * @test check the various small helpers and utilities we utilise * for dealing with ConfigQuery */ class QueryUtils_test : public Test { virtual void run (Arg arg) { if (isnil(arg)) arg = Cmdline ("normaliseID extractID removeTerm countPred"); if (contains (arg, "normaliseID")) check_normaliseID(); if (contains (arg, "extractID" )) check_extractID (); if (contains (arg, "removeTerm" )) check_removeTerm (); if (contains (arg, "countPred" )) check_countPred (); } /** @test sanitising and normalising various tokens */ void check_normaliseID () { Cmdline tokens ("a A AA dufte 1a _1 A_A BÄH"); tokens.push_back (""); tokens.push_back (" White \t space "); tokens.push_back ("§&Ω%€GΩ%€ar ☠☠☠ baäääääge!!!!! "); cout << "..original : "<