Example #1
0
        private static SupportFilterPlanTriplet[] SortTriplets(SupportFilterPlanTriplet[] triplets)
        {
            var sorted = new SupportFilterPlanTriplet[triplets.Length];
            Array.Copy(triplets, 0, sorted, 0, triplets.Length);
            Array.Sort(sorted, (o1, o2) => {
                var comparedLookupable = o1.Lookupable.CompareTo(o2.Lookupable);
                if (comparedLookupable != 0) {
                    return comparedLookupable;
                }

                var comparison = o1.Op.CompareTo(o2.Op);
                if (comparison != 0) {
                    return comparison;
                }

                throw new IllegalStateException("Comparator does not support value comparison");
            });
            return sorted;
        }
Example #2
0
 private static void AssertPlanPathTriplet(
     SupportFilterPlanTriplet tripletExpected,
     FilterSpecPlanPathTripletForge tripletReceived)
 {
     AssertExpressionOpt(tripletExpected.ControlConfirm, tripletReceived.TripletConfirm);
     Assert.AreEqual(tripletExpected.Lookupable, tripletReceived.Param.Lookupable.Expression);
     Assert.AreEqual(tripletExpected.Op, tripletReceived.Param.FilterOperator);
     var @out = new StringBuilder();
     tripletReceived.Param.ValueExprToString(@out, 0);
     if (tripletExpected.Op == EQUAL) {
         var expected = FilterSpecParamConstantForge.ValueExprToString(tripletExpected.Value);
         Assert.AreEqual(expected, @out.ToString());
     }
     else if (tripletExpected.Op == BOOLEAN_EXPRESSION || tripletExpected.Op == REBOOL) {
         var expected = FilterSpecParamExprNodeForge.ValueExprToString(tripletExpected.Value);
         Assert.AreEqual(expected, @out.ToString());
     }
     else {
         Assert.Fail("operator value to-string not supported yet");
     }
 }