@Test
  public void testOrganizedOperandsOfSingleRangeJunctionWithTwoIterOperandsForAND_3() {
    LogWriter logger = CacheUtils.getCache().getLogger();
    try {
      CompiledComparison[] cv = null;
      ExecutionContext context = new QueryExecutionContext(null, CacheUtils.getCache());
      bindIteratorsAndCreateIndex(context);
      // case1: a <7 and a<=5 and 2>a and 2> createTime and "xyz" > pid
      // and 100 != a and 200 !=a and 1 != a
      cv = new CompiledComparison[8];
      cv[0] = new CompiledComparison(new CompiledPath(new CompiledID("p"), "ID"),
          new CompiledLiteral(7), OQLLexerTokenTypes.TOK_LT);
      cv[1] = new CompiledComparison(new CompiledPath(new CompiledID("p"), "ID"),
          new CompiledLiteral(5), OQLLexerTokenTypes.TOK_LE);
      cv[2] = new CompiledComparison(new CompiledLiteral(2),
          new CompiledPath(new CompiledID("p"), "ID"), OQLLexerTokenTypes.TOK_GT);
      cv[3] = new CompiledComparison(new CompiledLiteral(2),
          new CompiledPath(new CompiledID("p"), "createTime"), OQLLexerTokenTypes.TOK_GT);
      cv[4] = new CompiledComparison(new CompiledLiteral("xyz"),
          new CompiledPath(new CompiledID("p"), "getPk"), OQLLexerTokenTypes.TOK_GT);
      cv[5] = new CompiledComparison(new CompiledLiteral(100),
          new CompiledPath(new CompiledID("p"), "ID"), OQLLexerTokenTypes.TOK_NE);
      cv[6] = new CompiledComparison(new CompiledLiteral(200),
          new CompiledPath(new CompiledID("p"), "ID"), OQLLexerTokenTypes.TOK_NE);

      cv[7] = new CompiledComparison(new CompiledLiteral(1),
          new CompiledPath(new CompiledID("p"), "ID"), OQLLexerTokenTypes.TOK_NE);

      OrganizedOperands oo =
          oganizedOperandsSingleRangeJunctionCreation(OQLLexerTokenTypes.LITERAL_and, cv, context);
      assertNotNull("OrganizedOperand object is null", oo);
      assertTrue("Filter Openad of OrganizedOperand is not of type RangeJunction",
          oo.filterOperand instanceof RangeJunction);
      RangeJunction rj = (RangeJunction) oo.filterOperand;
      assertEquals(cv.length, rj.getOperands().size());
      OrganizedOperands oo1 = rj.organizeOperands(context);
      assertNotNull(oo1);
      assertTrue(oo1.iterateOperand instanceof CompiledJunction);
      assertTrue(oo1.iterateOperand.getChildren().size() == 2);
      assertTrue(oo1.iterateOperand.getChildren().get(0) == cv[3]);
      assertTrue(oo1.iterateOperand.getChildren().get(1) == cv[4]);
      assertTrue(RangeJunction.isInstanceOfSingleCondnEvaluator(oo1.filterOperand));
      Set keysToRemove = RangeJunction.getKeysToBeRemoved(oo1.filterOperand);
      assertEquals(1, keysToRemove.size());
      assertTrue(keysToRemove.contains(1));

    } catch (Exception e) {
      logger.error(e);
      fail(e.toString());
    }
  }
Tests the functionality of organizedOperands function of a RangeJunction which is an AND with
two IterOperands but where the operator needs reflection. as the condition is Key > Path (
which means Path less than Key) The RangeJunction boils down to a condition and a NOT EQUAL
which will be evalauted as a SingleCondnEvaluator so the filter operand will be a
SingleCondnEvaluator. Its Iter operand will be a CompiledJunction
geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/CompiledJunctionInternalsJUnitTest.java