@@ -0,0 +1,1965 @@
+package io.sigpipe.sing.adapters;%0A%0Aimport io.sigpipe.sing.dataset.feature.Feature;%0Aimport io.sigpipe.sing.dataset.feature.FeatureType;%0Aimport io.sigpipe.sing.graph.FeatureHierarchy;%0Aimport io.sigpipe.sing.graph.Sketch;%0Aimport io.sigpipe.sing.query.Expression;%0Aimport io.sigpipe.sing.query.Operator;%0Aimport io.sigpipe.sing.query.RelationalQuery;%0Aimport io.sigpipe.sing.util.PerformanceTimer;%0Aimport io.sigpipe.sing.util.TestConfiguration;%0A%0Apublic class QueryTest %7B%0A%0A    public static void main(String%5B%5D args)%0A    throws Exception %7B%0A        for (String featureName : TestConfiguration.FEATURE_NAMES) %7B%0A            ReadMetaBlob.activeFeatures.add(featureName);%0A        %7D%0A%0A        FeatureHierarchy fh = new FeatureHierarchy();%0A        for (String featureName : TestConfiguration.FEATURE_NAMES) %7B%0A            System.out.println(%0A                    TestConfiguration.quantizers.get(featureName).numTicks()%0A                    + %22   %22 + featureName);%0A            fh.addFeature(featureName, FeatureType.FLOAT);%0A        %7D%0A        fh.addFeature(%22location%22, FeatureType.STRING);%0A        Sketch s = new Sketch(fh);%0A%0A        for (String f : args) %7B%0A            ReadMetaBlob.loadData(f, s);%0A        %7D%0A%0A        RelationalQuery mq = new RelationalQuery();%0A        mq.addExpression(new Expression(Operator.STR_PREFIX, new Feature(%22location%22, %229xqj%22)));%0A        mq.addExpression(%0A                new Expression(%0A                    Operator.RANGE_INC,%0A                    new Feature(%22temperature_surface%22, 300.0f),%0A                    new Feature(320.0f)));%0A        mq.addExpression(%0A                new Expression(%0A                    Operator.GREATER,%0A                    new Feature(%22relative_humidity_zerodegc_isotherm%22, 70.0f)));%0A%0A        mq.execute(s.getRoot());%0A        PerformanceTimer statQuery = new PerformanceTimer(%22relQuery%22);%0A        for (int i = 0; i %3C 1000; ++i) %7B%0A        statQuery.start();%0A        s.query(mq);%0A        statQuery.stopAndPrint();%0A        %7D%0A    %7D%0A%7D%0A

Add very simple query test harness