http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarComparisonExpressionWithOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarComparisonExpressionWithOperatorTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarComparisonExpressionWithOperatorTest.java
deleted file mode 100644
index ab63d06..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarComparisonExpressionWithOperatorTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar;
-
-import com.google.common.collect.ImmutableMap;
-import org.apache.metron.common.dsl.ParseException;
-import org.junit.Test;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.stream.Stream;
-
-import static org.apache.metron.common.utils.StellarProcessorUtils.run;
-import static 
org.apache.metron.common.utils.StellarProcessorUtils.runPredicate;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-@SuppressWarnings("ALL")
-public class StellarComparisonExpressionWithOperatorTest {
-  @SuppressWarnings({"RedundantConditionalExpression", "ConstantConditions"})
-  @Test
-  public void checkLessThanComparisonOperators() throws Exception {
-    assertEquals(1 < 2, run("1 < 2", ImmutableMap.of()));
-    assertEquals(1f < 2, run("1f < 2", ImmutableMap.of()));
-    assertEquals(1f < 2d, run("1f < 2d", ImmutableMap.of()));
-    assertEquals(1f < 2e-4d, run("1f < 2e-4d", ImmutableMap.of()));
-    assertEquals(1L < 2e-4d, run("1L < 2e-4d", ImmutableMap.of()));
-    assertEquals(1 < 2e-4d, run("1 < 2e-4d", ImmutableMap.of()));
-    assertEquals(1 < 2L, run("1 < 2L", ImmutableMap.of()));
-    assertEquals(1.0f < 2.0f, run("1.0f < 2.0f", ImmutableMap.of()));
-    assertEquals(1L < 3.0f, run("1L < 3.0f", ImmutableMap.of()));
-    assertEquals(1 < 3.0f, run("1 < 3.0f", ImmutableMap.of()));
-    assertEquals(1.0 < 3.0f, run("1.0 < 3.0f", ImmutableMap.of()));
-    assertEquals(false, run("foo < 3.0f", ImmutableMap.of()));
-    assertEquals(false, run("foo < foo", ImmutableMap.of()));
-    assertEquals(1L < 3.0f ? true : false, run("if 1L < 3.0f then true else 
false", ImmutableMap.of()));
-  }
-
-  @SuppressWarnings("ConstantConditions")
-  @Test
-  public void checkComparisonOperationsWithFunctions() throws Exception {
-    assertEquals(1f >= 2, run("TO_FLOAT(1) >= 2", ImmutableMap.of()));
-    assertEquals(1f <= 2, run("TO_FLOAT(1) <= TO_FLOAT(2)", 
ImmutableMap.of()));
-    assertEquals(1f == 2, run("TO_FLOAT(1) == TO_LONG(2)", ImmutableMap.of()));
-    assertEquals(12.31f == 10.2f, run("TO_FLOAT(12.31) < 10.2f", 
ImmutableMap.of()));
-  }
-
-  @Test
-  public void testSimpleOps() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-      put("spaced", "metron is great");
-      put("foo.bar", "casey");
-    }};
-
-    assertTrue(runPredicate("'casey' == foo.bar", variableMap::get));
-    assertTrue(runPredicate("'casey' == foo", variableMap::get));
-    assertFalse(runPredicate("'casey' != foo", variableMap::get));
-    assertTrue(runPredicate("'stella' == 'stella'", variableMap::get));
-    assertFalse(runPredicate("'stella' == foo", variableMap::get));
-    assertTrue(runPredicate("foo== foo", variableMap::get));
-    assertTrue(runPredicate("empty== ''", variableMap::get));
-    assertTrue(runPredicate("spaced == 'metron is great'", variableMap::get));
-    assertTrue(runPredicate(null, variableMap::get));
-    assertTrue(runPredicate("", variableMap::get));
-    assertTrue(runPredicate(" ", variableMap::get));
-  }
-
-  @Test
-  public void compareNumberAndStringWithSameValueShouldBeFalse() throws 
Exception {
-    assertFalse(runPredicate("1 == '1'", new HashMap<>()::get));
-    assertFalse(runPredicate("'1' == 1", new HashMap<>()::get));
-  }
-
-  @Test
-  public void comparingNullShouldNotCauseNullPointer() throws Exception {
-    assertFalse(runPredicate("null == '1'", new HashMap<>()::get));
-    assertFalse(runPredicate("\"1\" == null", new HashMap<>()::get));
-    assertTrue(runPredicate("null == null", new HashMap<>()::get));
-  }
-
-  @Test
-  public void makeSureSingleQuotesAndDoubleQuotesAreEqual() throws Exception {
-    assertTrue(runPredicate("\"1\" == '1'", new HashMap<>()::get));
-    assertTrue(runPredicate("'1' == \"1\"", new HashMap<>()::get));
-    assertTrue(runPredicate("'1' == \"1\"", new HashMap<>()::get));
-  }
-
-  @Test
-  public void makeSureSingleQuoteStringsAreEvaluatedAsStrings() throws 
Exception {
-    assertFalse(runPredicate("55 == '7'", new HashMap<>()::get));
-    assertFalse(runPredicate("97 == 'a'", new HashMap<>()::get));
-  }
-
-  @Test
-  public void testNumericComparisonFunctions() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<String, Object>() {{
-      put("foo", "casey");
-      put("bar", "bar.casey.grok");
-      put("ip", "192.168.0.1");
-      put("num", 7);
-      put("num2", 8.5);
-      put("num3", 7);
-      put("num4", "8.5");
-      put("empty", "");
-      put("spaced", "metron is great");
-    }};
-    assertTrue(runPredicate("num == 7", variableMap::get));
-    assertTrue(runPredicate("num < num2", variableMap::get));
-    assertTrue(runPredicate("num < TO_DOUBLE(num2)", variableMap::get));
-    assertTrue(runPredicate("num < TO_DOUBLE(num4)", variableMap::get));
-    assertTrue(runPredicate("num < 100", variableMap::get));
-    assertTrue(runPredicate("num == num3", variableMap::get));
-    assertFalse(runPredicate("num == num2", variableMap::get));
-    assertTrue(runPredicate("num == num2 || true", variableMap::get));
-    assertFalse(runPredicate("num > num2", variableMap::get));
-    assertTrue(runPredicate("num == 7 && num > 2", variableMap::get));
-  }
-
-  @Test
-  public void positiveAndNegativeZeroAreEqual() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<String, Object>() {{
-      put("num", -0);
-    }};
-
-    Arrays.asList("!=", "==").forEach(op -> {
-      assertEquals("==".equals(op), runPredicate("num " + op + " 0", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("0 " + op + " -0", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("0 " + op + " -0d", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("-0 " + op + " 0", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("-0F " + op + " 0D", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("-0.F " + op + " 0", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("-0.F " + op + " 0F", 
variableMap::get));
-      assertEquals("==".equals(op), runPredicate("-0.D " + op + " 0D", 
variableMap::get));
-    });
-  }
-
-  @Test
-  public void naNIsNotEqualToNaN() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    Arrays.asList("!=", "==").forEach(op -> {
-      assertEquals("!=".equals(op), runPredicate("(0f/0f) " + op + " (0f/0f)", 
variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0f/0f) " + op + " 
(0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0f/-0f) " + op + " 
(0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0f/-0f) " + op + " 
(-0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0f/-0f) " + op + " 
(-0f/-0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0f/-0f) " + op + " 
(0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0f/-0f) " + op + " 
(-0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0f/-0f) " + op + " 
(-0f/-0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0f/0f) " + op + " 
(-0f/0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0f/0d) " + op + " 
(-0f/-0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0d/-0f) " + op + " 
(0f/-0f)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0f/0f) " + op + " 
(0f/-0d)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(-0d/-0d) " + op + " 
(0d/-0d)", variableMap::get));
-      assertEquals("!=".equals(op), runPredicate("(0d/0d) " + op + " (0d/0d)", 
variableMap::get));
-    });
-  }
-
-  @Test
-  public void booleanComparisonTests() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<String, Object>() {{
-      put("t", true);
-      put("f", false);
-    }};
-
-    assertTrue(runPredicate("t != f", variableMap::get));
-    assertTrue(runPredicate("f != t", variableMap::get));
-    assertTrue(runPredicate("true != false", variableMap::get));
-    assertFalse(runPredicate("true != true", variableMap::get));
-    assertTrue(runPredicate("false != true", variableMap::get));
-    assertFalse(runPredicate("false != false", variableMap::get));
-
-    assertFalse(runPredicate("t == f", variableMap::get));
-    assertFalse(runPredicate("f == t", variableMap::get));
-    assertFalse(runPredicate("true == false", variableMap::get));
-    assertTrue(runPredicate("true == true", variableMap::get));
-    assertFalse(runPredicate("false == true", variableMap::get));
-    assertTrue(runPredicate("false == false", variableMap::get));
-
-    assertFalse(runPredicate("null == false", variableMap::get));
-    assertFalse(runPredicate("null == true", variableMap::get));
-    assertFalse(runPredicate("true == NULL", variableMap::get));
-    assertFalse(runPredicate("false == NULL", variableMap::get));
-  }
-
-  @Test
-  public void nullComparisonTests() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-
-    assertFalse(runPredicate("null == false", variableMap::get));
-    assertFalse(runPredicate("null == true", variableMap::get));
-    assertFalse(runPredicate("true == NULL", variableMap::get));
-    assertFalse(runPredicate("false == NULL", variableMap::get));
-    assertFalse(runPredicate("1 == NULL", variableMap::get));
-    assertFalse(runPredicate("'null' == NULL", variableMap::get));
-    assertFalse(runPredicate("'' == NULL", variableMap::get));
-    assertFalse(runPredicate("null == ''", variableMap::get));
-
-    assertTrue(runPredicate("NULL == null", variableMap::get));
-  }
-
-  @Test
-  public void precisionEqualityTests() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    assertEquals(0.1 + 0.2 == 0.3, runPredicate("0.1 + 0.2 == 0.3", 
variableMap::get));
-  }
-
-  @Test(expected = ParseException.class)
-  public void differentTypesShouldThrowErrorWhenUsingLT() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    runPredicate("1 < '1'", variableMap::get);
-  }
-
-  @Test(expected = ParseException.class)
-  public void differentTypesShouldThrowErrorWhenUsingLTE() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    runPredicate("'1' <= 1", variableMap::get);
-  }
-
-  @Test(expected = ParseException.class)
-  public void differentTypesShouldThrowErrorWhenUsingGT() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    runPredicate("1 > '1'", variableMap::get);
-  }
-
-  @Test(expected = ParseException.class)
-  public void differentTypesShouldThrowErrorWhenUsingGTE() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    runPredicate("'1' >= 1", variableMap::get);
-  }
-
-  @Test
-  public void differentTypesShouldThrowErrorWhenUsingComparisons() throws 
Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    final Integer[] result = {0};
-
-    Stream.of("<", "<=", ">", ">=").forEach(op -> {
-      assertFalse(runPredicate("'1' " + op + " null", variableMap::get));
-    });
-  }
-
-  @Test
-  public void makeSurePrecisionIsProperlyHandled() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<>();
-    {
-      assertEquals(1 == 1.00000001, runPredicate("1 == 1.00000001", 
variableMap::get));
-      assertEquals(1 < 1.00000001, runPredicate("1 < 1.00000001", 
variableMap::get));
-      assertEquals(1 <= 1.00000001, runPredicate("1 <= 1.00000001", 
variableMap::get));
-      assertEquals(1 > 1.00000001, runPredicate("1 > 1.00000001", 
variableMap::get));
-      assertEquals(1 >= 1.00000001, runPredicate("1 >= 1.00000001", 
variableMap::get));
-    }
-    {
-      assertEquals(1 == 1.00000001F, runPredicate("1 == 1.00000001F", 
variableMap::get));
-      assertEquals(1 < 1.00000001F, runPredicate("1 < 1.00000001F", 
variableMap::get));
-      assertEquals(1 <= 1.00000001F, runPredicate("1 <= 1.00000001F", 
variableMap::get));
-      assertEquals(1 > 1.00000001F, runPredicate("1 > 1.00000001F", 
variableMap::get));
-      assertEquals(1 >= 1.00000001F, runPredicate("1 >= 1.00000001F", 
variableMap::get));
-    }
-    {
-      assertEquals(1.00000001F == 1.00000001, runPredicate("1.00000001F == 
1.00000001", variableMap::get));
-      assertEquals(1.00000001F < 1.00000001, runPredicate("1.00000001F < 
1.00000001", variableMap::get));
-      assertEquals(1.00000001F <= 1.00000001, runPredicate("1.00000001F <= 
1.00000001", variableMap::get));
-      assertEquals(1.00000001F > 1.00000001, runPredicate("1.00000001F > 
1.00000001", variableMap::get));
-      assertEquals(1.00000001F >= 1.00000001, runPredicate("1.00000001F >= 
1.00000001", variableMap::get));
-    }
-    {
-      assertEquals(-1L == -1.00000001F, runPredicate("-1L == -1.00000001F", 
variableMap::get));
-      assertEquals(-1L < -1.00000001F, runPredicate("-1L < -1.00000001F", 
variableMap::get));
-      assertEquals(-1L <= -1.00000001F, runPredicate("-1L <= -1.00000001F", 
variableMap::get));
-      assertEquals(-1L > -1.00000001F, runPredicate("-1L > -1.00000001F", 
variableMap::get));
-      assertEquals(-1L >= -1.00000001F, runPredicate("-1L >= -1.00000001F", 
variableMap::get));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarInterpreterTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarInterpreterTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarInterpreterTest.java
deleted file mode 100644
index 39563f7..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarInterpreterTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar;
-
-import org.apache.metron.common.dsl.Context;
-import org.apache.metron.common.dsl.Token;
-import org.apache.metron.common.dsl.VariableResolver;
-import org.apache.metron.common.dsl.functions.resolver.FunctionResolver;
-import org.apache.metron.common.stellar.evaluators.ArithmeticEvaluator;
-import 
org.apache.metron.common.stellar.evaluators.ComparisonExpressionWithOperatorEvaluator;
-import org.apache.metron.common.stellar.evaluators.NumberLiteralEvaluator;
-import org.apache.metron.common.stellar.generated.StellarParser;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.verification.VerificationMode;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import java.util.ArrayDeque;
-import java.util.Deque;
-import java.util.Stack;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.*;
-
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({Deque.class, ArithmeticEvaluator.class, 
NumberLiteralEvaluator.class, ComparisonExpressionWithOperatorEvaluator.class})
-public class StellarInterpreterTest {
-  VariableResolver variableResolver;
-  FunctionResolver functionResolver;
-  Context context;
-  Deque<Token<?>> tokenStack;
-  ArithmeticEvaluator arithmeticEvaluator;
-  NumberLiteralEvaluator numberLiteralEvaluator;
-  ComparisonExpressionWithOperatorEvaluator 
comparisonExpressionWithOperatorEvaluator;
-  StellarCompiler compiler;
-  StellarCompiler.Expression expression;
-
-  @SuppressWarnings("unchecked")
-  @Before
-  public void setUp() throws Exception {
-    variableResolver = mock(VariableResolver.class);
-    functionResolver = mock(FunctionResolver.class);
-    context = mock(Context.class);
-    tokenStack = new ArrayDeque<>();
-    arithmeticEvaluator = mock(ArithmeticEvaluator.class);
-    numberLiteralEvaluator = mock(NumberLiteralEvaluator.class);
-    comparisonExpressionWithOperatorEvaluator = 
mock(ComparisonExpressionWithOperatorEvaluator.class);
-    expression = new StellarCompiler.Expression(tokenStack);
-    compiler = new StellarCompiler(expression, arithmeticEvaluator, 
numberLiteralEvaluator, comparisonExpressionWithOperatorEvaluator);
-  }
-
-  @Test
-  public void exitIntLiteralShouldProperlyParseStringsAsIntegers() throws 
Exception {
-    StellarParser.IntLiteralContext ctx = 
mock(StellarParser.IntLiteralContext.class);
-    Token result = mock(Token.class);
-    when(ctx.getText()).thenReturn("1000");
-    when(numberLiteralEvaluator.evaluate(ctx, null)).thenReturn(result);
-    compiler.exitIntLiteral(ctx);
-    verify(numberLiteralEvaluator).evaluate(ctx, null);
-    Assert.assertEquals(1, tokenStack.size());
-    Assert.assertEquals(tokenStack.getFirst(), result);
-    verifyZeroInteractions(variableResolver);
-    verifyZeroInteractions(functionResolver);
-    verifyZeroInteractions(context);
-    verifyZeroInteractions(arithmeticEvaluator);
-    verifyZeroInteractions(comparisonExpressionWithOperatorEvaluator);
-  }
-
-  @Test
-  public void exitDoubleLiteralShouldProperlyParseStringsAsDoubles() throws 
Exception {
-    StellarParser.DoubleLiteralContext ctx = 
mock(StellarParser.DoubleLiteralContext.class);
-    Token result = mock(Token.class);
-    when(numberLiteralEvaluator.evaluate(ctx, null)).thenReturn(result);
-    when(ctx.getText()).thenReturn("1000D");
-
-    compiler.exitDoubleLiteral(ctx);
-
-    verify(numberLiteralEvaluator).evaluate(ctx, null);
-    Assert.assertEquals(1, tokenStack.size());
-    Assert.assertEquals(tokenStack.getFirst(), result);
-    verifyZeroInteractions(variableResolver);
-    verifyZeroInteractions(functionResolver);
-    verifyZeroInteractions(context);
-    verifyZeroInteractions(arithmeticEvaluator);
-    verifyZeroInteractions(comparisonExpressionWithOperatorEvaluator);
-  }
-
-  @Test
-  public void exitFloatLiteralShouldProperlyParseStringsAsFloats() throws 
Exception {
-    StellarParser.FloatLiteralContext ctx = 
mock(StellarParser.FloatLiteralContext.class);
-    when(ctx.getText()).thenReturn("1000f");
-    Token result = mock(Token.class);
-    when(numberLiteralEvaluator.evaluate(ctx, null)).thenReturn(result);
-
-    compiler.exitFloatLiteral(ctx);
-
-    verify(numberLiteralEvaluator).evaluate(ctx, null);
-    Assert.assertEquals(1, tokenStack.size());
-    Assert.assertEquals(tokenStack.getFirst(), result);
-    verifyZeroInteractions(variableResolver);
-    verifyZeroInteractions(functionResolver);
-    verifyZeroInteractions(context);
-    verifyZeroInteractions(arithmeticEvaluator);
-    verifyZeroInteractions(comparisonExpressionWithOperatorEvaluator);
-  }
-
-  @Test
-  public void exitLongLiteralShouldProperlyParseStringsAsLongs() throws 
Exception {
-    StellarParser.LongLiteralContext ctx = 
mock(StellarParser.LongLiteralContext.class);
-    when(ctx.getText()).thenReturn("1000l");
-    Token result = mock(Token.class);
-    when(numberLiteralEvaluator.evaluate(ctx, null)).thenReturn(result);
-
-    compiler.exitLongLiteral(ctx);
-
-    verify(numberLiteralEvaluator).evaluate(ctx, null);
-    Assert.assertEquals(1, tokenStack.size());
-    Assert.assertEquals(tokenStack.getFirst(), result);
-    verifyZeroInteractions(variableResolver);
-    verifyZeroInteractions(functionResolver);
-    verifyZeroInteractions(context);
-    verifyZeroInteractions(arithmeticEvaluator);
-    verifyZeroInteractions(comparisonExpressionWithOperatorEvaluator);
-  }
-
-  @Test
-  public void properlyCompareTwoNumbers() throws Exception {
-    StellarParser.ComparisonExpressionWithOperatorContext ctx = 
mock(StellarParser.ComparisonExpressionWithOperatorContext.class);
-    StellarParser.ComparisonOpContext mockOp = 
mock(StellarParser.ComparisonOpContext.class);
-    when(ctx.comp_operator()).thenReturn(mockOp);
-    Token result = mock(Token.class);
-    when(comparisonExpressionWithOperatorEvaluator.evaluate(any(Token.class), 
any(Token.class), any(StellarParser.ComparisonOpContext.class), 
any())).thenReturn(result);
-
-    compiler.exitComparisonExpressionWithOperator(ctx);
-    Assert.assertEquals(1, tokenStack.size());
-    StellarCompiler.DeferredFunction func = (StellarCompiler.DeferredFunction) 
tokenStack.pop().getValue();
-    tokenStack.push(new Token<>(1000, Integer.class, null));
-    tokenStack.push(new Token<>(1500f, Float.class, null));
-    func.apply(tokenStack, new StellarCompiler.ExpressionState(context, 
functionResolver, variableResolver));
-    Assert.assertEquals(1, tokenStack.size());
-    Assert.assertEquals(tokenStack.getFirst(), result);
-    
verify(comparisonExpressionWithOperatorEvaluator).evaluate(any(Token.class), 
any(Token.class), eq(mockOp), any());
-    verifyZeroInteractions(numberLiteralEvaluator);
-    verifyZeroInteractions(variableResolver);
-    verifyZeroInteractions(functionResolver);
-    verifyZeroInteractions(context);
-    verifyZeroInteractions(arithmeticEvaluator);
-  }
-}

http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarPredicateProcessorTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarPredicateProcessorTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarPredicateProcessorTest.java
deleted file mode 100644
index c0165a3..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarPredicateProcessorTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar;
-
-import org.apache.metron.common.dsl.ParseException;
-import org.junit.Test;
-
-import static org.junit.Assert.fail;
-
-public class StellarPredicateProcessorTest {
-  @SuppressWarnings("EmptyCatchBlock")
-  @Test
-  public void testValidation() throws Exception {
-    StellarPredicateProcessor processor = new StellarPredicateProcessor();
-    try {
-      processor.validate("enrichedField1 == 'enrichedValue1");
-      fail("Invalid rule found to be valid - unclosed single quotes.");
-    } catch(ParseException e) {}
-  }
-}

http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarTest.java
deleted file mode 100644
index d549e19..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/StellarTest.java
+++ /dev/null
@@ -1,735 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.metron.common.dsl.*;
-import 
org.apache.metron.common.dsl.functions.resolver.ClasspathFunctionResolver;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.reflections.Reflections;
-import org.reflections.util.ConfigurationBuilder;
-
-import java.util.*;
-
-import static org.apache.metron.common.utils.StellarProcessorUtils.run;
-import static 
org.apache.metron.common.utils.StellarProcessorUtils.runPredicate;
-
-@SuppressWarnings("ALL")
-public class StellarTest {
-
-  @Stellar(
-          description="throw exception",
-          name="THROW",
-          params = {
-           "message - exception message"
-          },
-          returns="nothing"
-  )
-  public static class Throw implements StellarFunction {
-
-    @Override
-    public Object apply(List<Object> args, Context context) throws 
ParseException {
-      throw new IllegalStateException(Joiner.on(" ").join(args));
-    }
-
-    @Override
-    public void initialize(Context context) {
-
-    }
-
-    @Override
-    public boolean isInitialized() {
-      return true;
-    }
-  }
-
-  @Stellar(
-          description="Always returns true",
-          name="RET_TRUE",
-          params = {
-           "arg* - Any set of args you wish to give it (including the empty 
set), they're ignored."
-          },
-          returns="true"
-  )
-  public static class TrueFunc implements StellarFunction {
-
-    @Override
-    public Object apply(List<Object> args, Context context) throws 
ParseException {
-      return true;
-    }
-
-    @Override
-    public void initialize(Context context) {
-
-    }
-
-    @Override
-    public boolean isInitialized() {
-      return true;
-    }
-  }
-
-  @Test
-  public void ensureDocumentation() {
-    ClassLoader classLoader = getClass().getClassLoader();
-    int numFound = 0;
-    for (Class<?> clazz : new ClasspathFunctionResolver().resolvables()) {
-      if (clazz.isAnnotationPresent(Stellar.class)) {
-        numFound++;
-        Stellar annotation = clazz.getAnnotation(Stellar.class);
-        Assert.assertFalse("Must specify a name for " + 
clazz.getName(),StringUtils.isEmpty(annotation.name()));
-        Assert.assertFalse("Must specify a description annotation for " + 
clazz.getName(),StringUtils.isEmpty(annotation.description()));
-        Assert.assertTrue("Must specify a non-empty params for " + 
clazz.getName(), annotation.params().length > 0);
-        Assert.assertTrue("Must specify a non-empty params for " + 
clazz.getName(), StringUtils.isNoneEmpty(annotation.params()));
-        Assert.assertFalse("Must specify a returns annotation for " + 
clazz.getName(), StringUtils.isEmpty(annotation.returns()));
-      }
-    }
-    Assert.assertTrue(numFound > 0);
-  }
-
-  @Test
-  public void testEscapedLiterals() {
-    Assert.assertEquals("'bar'", run("\"'bar'\"", new HashMap<>()));
-    Assert.assertEquals("'BAR'", run("TO_UPPER('\\'bar\\'')", new 
HashMap<>()));
-    Assert.assertEquals("\"bar\"", run("\"\\\"bar\\\"\"", new HashMap<>()));
-    Assert.assertEquals("\"bar\"", run("'\"bar\"'", new HashMap<>()));
-    Assert.assertEquals("\"BAR\"", run("TO_UPPER(\"\\\"bar\\\"\")", new 
HashMap<>()));
-    Assert.assertEquals("bar \\ foo", run("'bar \\\\ foo'", new HashMap<>()));
-    Assert.assertEquals("bar \\\\ foo", run("'bar \\\\\\\\ foo'", new 
HashMap<>()));
-    Assert.assertEquals("bar\nfoo", run("'bar\\nfoo'", new HashMap<>()));
-    Assert.assertEquals("bar\n\nfoo", run("'bar\\n\\nfoo'", new HashMap<>()));
-    Assert.assertEquals("bar\tfoo", run("'bar\\tfoo'", new HashMap<>()));
-    Assert.assertEquals("bar\t\tfoo", run("'bar\\t\\tfoo'", new HashMap<>()));
-    Assert.assertEquals("bar\rfoo", run("'bar\\rfoo'", new HashMap<>()));
-    Assert.assertEquals("'bar'", run("'\\'bar\\''", new HashMap<>()));
-  }
-
-  @Test
-  public void testVariableResolution() {
-    {
-      String query = "bar:variable";
-      Assert.assertEquals("bar", run(query, ImmutableMap.of("bar:variable", 
"bar")));
-      Assert.assertEquals("grok", run(query, ImmutableMap.of("bar:variable", 
"grok")));
-    }
-    {
-      String query = "JOIN(['foo', bar:variable], '')";
-      Assert.assertEquals("foobar", run(query, ImmutableMap.of("bar:variable", 
"bar")));
-      Assert.assertEquals("foogrok", run(query, 
ImmutableMap.of("bar:variable", "grok")));
-    }
-    {
-      String query = "MAP_GET('bar', { 'foo' : 1, 'bar' : bar:variable})";
-      Assert.assertEquals("bar", run(query, ImmutableMap.of("bar:variable", 
"bar")));
-      Assert.assertEquals("grok", run(query, ImmutableMap.of("bar:variable", 
"grok")));
-    }
-  }
-
-  @Test
-  public void testIfThenElseBug1() {
-    String query = "50 + (true == true ? 10 : 20)";
-    Assert.assertEquals(60, run(query, new HashMap<>()));
-  }
-
-  @Test
-  public void testIfThenElseBug2() {
-    String query = "50 + (true == false ? 10 : 20)";
-    Assert.assertEquals(70, run(query, new HashMap<>()));
-  }
-
-  @Test
-  public void testIfThenElseBug3() {
-    String query = "50 * (true == false ? 2 : 10) + 20";
-    Assert.assertEquals(520, run(query, new HashMap<>()));
-  }
-
-  @Test
-  public void testIfThenElseBug4() {
-    String query = "TO_INTEGER(true == true ? 10.0 : 20.0 )";
-    Assert.assertEquals(10, run(query, new HashMap<>()));
-  }
-
-  @Test
-  public void testVariablesUsed() {
-    StellarProcessor processor = new StellarProcessor();
-    {
-      Assert.assertEquals(new HashSet<>(), processor.variablesUsed("if 1 < 2 
then 'one' else 'two'"));
-    }
-    {
-      Assert.assertEquals(ImmutableSet.of("one")
-                         , processor.variablesUsed("if 1 < 2 then one else 
'two'"));
-    }
-    {
-      Assert.assertEquals(ImmutableSet.of("one", "two")
-                         , processor.variablesUsed("if 1 < 2 then one else 
two"));
-    }
-    {
-      Assert.assertEquals(ImmutableSet.of("bar")
-                         , processor.variablesUsed("MAP_GET('foo', { 'foo' : 
bar})"));
-    }
-  }
-
-
-  @Test
-  public void testFunctionEmptyArgs() {
-    {
-      String query = "STARTS_WITH(casey, 'case') or MAP_EXISTS()";
-      Assert.assertTrue((Boolean)run(query, ImmutableMap.of("casey", 
"casey")));
-    }
-    {
-      String query = "true or MAP_EXISTS()";
-      Assert.assertTrue((Boolean)run(query, new HashMap<>()));
-    }
-    {
-      String query = "MAP_EXISTS() or true";
-      Assert.assertTrue((Boolean)run(query, new HashMap<>()));
-    }
-  }
-  @Test
-  public void testNull() {
-    {
-      String query = "if 1 < 2 then NULL else true";
-      Assert.assertNull(run(query, new HashMap<>()));
-    }
-    {
-      String query = "1 < 2 ? NULL : true";
-      Assert.assertNull(run(query, new HashMap<>()));
-    }
-    {
-      String query = "null == null ? true : false";
-      Assert.assertTrue((Boolean)run(query, new HashMap<>()));
-    }
-  }
-
-  @Test
-  public void testMapConstant() {
-    {
-      String query = "MAP_GET('bar', { 'foo' : 1, 'bar' : 'bar'})";
-      Assert.assertEquals("bar", run(query, new HashMap<>()));
-    }
-    {
-      String query = "MAP_GET('blah', {  'blah' : 1 < 2 })";
-      Assert.assertEquals(true, run(query, new HashMap<>()));
-    }
-    {
-      String query = "MAP_GET('blah', {  'blah' : not(STARTS_WITH(casey, 
'case')) })";
-      Assert.assertEquals(false, run(query, ImmutableMap.of("casey", 
"casey")));
-    }
-    {
-      String query = "MAP_GET('blah', {  'blah' : one })";
-      Assert.assertEquals(1, run(query, ImmutableMap.of("one", 1)));
-    }
-    {
-      String query = "MAP_GET('blah', {  'blah' : null })";
-      Assert.assertNull(run(query, new HashMap<>()));
-    }
-    {
-      String query = "MAP_GET('BLAH', {  TO_UPPER('blah') : null })";
-      Assert.assertNull(run(query, new HashMap<>()));
-    }
-    {
-      String query = "MAP_GET('BLAH', {  TO_UPPER('blah') : 1 < 2 })";
-      Assert.assertEquals(true, run(query, new HashMap<>()));
-    }
-  }
-
-  @Test
-  public void testIfThenElse() {
-    {
-      String query = "if STARTS_WITH(casey, 'case') then 'one' else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("casey", 
"casey")));
-    }
-    {
-      String query = "if 1 < 2 then 'one' else 'two'";
-      Assert.assertEquals("one", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if 1 + 1 < 2 then 'one' else 'two'";
-      Assert.assertEquals("two", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if 1 + 1 <= 2 AND 1 + 2 in [3] then 'one' else 'two'";
-      Assert.assertEquals("one", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if 1 + 1 <= 2 AND (1 + 2 in [3]) then 'one' else 'two'";
-      Assert.assertEquals("one", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if not(1 < 2) then 'one' else 'two'";
-      Assert.assertEquals("two", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if 1 == 1.0000001 then 'one' else 'two'";
-      Assert.assertEquals("two", run(query, new HashMap<>()));
-    }
-    {
-      String query = "if one < two then 'one' else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", 1, "two", 
2)));
-    }
-    {
-      String query = "if one == very_nearly_one then 'one' else 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if one == very_nearly_one OR one == very_nearly_one then 
'one' else 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if one == very_nearly_one OR one != very_nearly_one then 
'one' else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if one != very_nearly_one OR one == very_nearly_one then 
'one' else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if 'foo' in ['foo'] OR one == very_nearly_one then 'one' 
else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if ('foo' in ['foo']) OR one == very_nearly_one then 
'one' else 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if not('foo' in ['foo']) OR one == very_nearly_one then 
'one' else 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "if not('foo' in ['foo'] OR one == very_nearly_one) then 
'one' else 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1, 
"very_nearly_one", 1.0000001)));
-    }
-    {
-      String query = "1 < 2 ? 'one' : 'two'";
-      Assert.assertEquals("one", run(query, new HashMap<>()));
-    }
-    {
-      String query = "1 < 2 ? TO_UPPER('one') : 'two'";
-      Assert.assertEquals("ONE", run(query, new HashMap<>()));
-    }
-    {
-      String query = "1 < 2 ? one : 'two'";
-      Assert.assertEquals("one", run(query, ImmutableMap.of("one", "one")));
-    }
-    {
-      String query = "1 < 2 ? one*3 : 'two'";
-      Assert.assertTrue(Math.abs(3 - (int) run(query, ImmutableMap.of("one", 
1))) < 1e-6);
-    }
-    {
-      String query = "1 < 2 AND 1 < 2 ? one*3 : 'two'";
-      Assert.assertTrue(Math.abs(3 - (int) run(query, ImmutableMap.of("one", 
1))) < 1e-6);
-    }
-    {
-      String query = "1 < 2 AND 1 > 2 ? one*3 : 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1)));
-    }
-    {
-      String query = "1 > 2 AND 1 < 2 ? one*3 : 'two'";
-      Assert.assertEquals("two", run(query, ImmutableMap.of("one", 1)));
-    }
-    {
-      String query = "1 < 2 AND 'foo' in ['', 'foo'] ? one*3 : 'two'";
-      Assert.assertEquals(3, run(query, ImmutableMap.of("one", 1)));
-    }
-    {
-      String query = "1 < 2 AND ('foo' in ['', 'foo']) ? one*3 : 'two'";
-      Assert.assertEquals(3, run(query, ImmutableMap.of("one", 1)));
-    }
-    {
-      String query = "'foo' in ['', 'foo'] ? one*3 : 'two'";
-      Assert.assertEquals(3, run(query, ImmutableMap.of("one", 1)));
-    }
-  }
-
-  @Test
-  public void testInNotIN(){
-    HashMap variables = new HashMap<>();
-    boolean thrown = false;
-    try{
-      Object o = run("in in ['','in']" ,variables );
-    }catch(ParseException pe) {
-      thrown = true;
-    }
-    Assert.assertTrue(thrown);
-    thrown = false;
-
-    try{
-      Assert.assertEquals(true,run("'in' in ['','in']" ,variables ));
-    }catch(ParseException pe) {
-      thrown = true;
-    }
-    Assert.assertFalse(thrown);
-  }
-
-  @Test
-  public void testHappyPath() {
-    String query = "TO_UPPER(TRIM(foo))";
-    Assert.assertEquals("CASEY", run(query, ImmutableMap.of("foo", "casey ")));
-  }
-
-  @Test
-  public void testLengthString(){
-    String query = "LENGTH(foo)";
-    Assert.assertEquals(5, run(query,ImmutableMap.of("foo","abcde")));
-  }
-  @Test
-  public void testLengthCollection(){
-    String query = "LENGTH(foo)";
-    Collection c = Arrays.asList(1,2,3,4,5);
-    Assert.assertEquals(5, run(query,ImmutableMap.of("foo",c)));
-  }
-
-  @Test
-  public void testEmptyLengthString(){
-    String query = "LENGTH(foo)";
-    Assert.assertEquals(0,run(query,ImmutableMap.of("foo","")));
-  }
-  @Test
-  public void testEmptyLengthCollection(){
-    String query = "LENGTH(foo)";
-    Collection c = new ArrayList();
-    Assert.assertEquals(0,run(query,ImmutableMap.of("foo",c)));
-  }
-  @Test
-  public void testNoVarLength(){
-    String query = "LENGTH(foo)";
-    Assert.assertEquals(0,run(query,ImmutableMap.of()));
-  }
-
-  @Test
-  public void testJoin() {
-    String query = "JOIN( [ TO_UPPER(TRIM(foo)), 'bar' ], ',')";
-    Assert.assertEquals("CASEY,bar", run(query, ImmutableMap.of("foo", "casey 
")));
-  }
-
-  @Test
-  public void testSplit() {
-    String query = "JOIN( SPLIT(foo, ':'), ',')";
-    Assert.assertEquals("casey,bar", run(query, ImmutableMap.of("foo", 
"casey:bar")));
-  }
-
-  @Test
-  public void testMapGet() {
-    String query = "MAP_GET(dc, dc2tz, 'UTC')";
-    Assert.assertEquals("UTC"
-                       , run(query, ImmutableMap.of("dc", "nyc"
-                                                   ,"dc2tz", 
ImmutableMap.of("la", "PST")
-                                                   )
-                            )
-                       );
-    Assert.assertEquals("EST"
-                       , run(query, ImmutableMap.of("dc", "nyc"
-                                                   ,"dc2tz", 
ImmutableMap.of("nyc", "EST")
-                                                   )
-                            )
-                       );
-  }
-
-  @Test
-  public void testTLDExtraction() {
-    String query = "DOMAIN_TO_TLD(foo)";
-    Assert.assertEquals("co.uk", run(query, ImmutableMap.of("foo", 
"www.google.co.uk")));
-  }
-
-  @Test
-  public void testTLDRemoval() {
-    String query = "DOMAIN_REMOVE_TLD(foo)";
-    Assert.assertEquals("www.google", run(query, ImmutableMap.of("foo", 
"www.google.co.uk")));
-  }
-
-  @Test
-  public void testSubdomainRemoval() {
-    String query = "DOMAIN_REMOVE_SUBDOMAINS(foo)";
-    Assert.assertEquals("google.co.uk", run(query, ImmutableMap.of("foo", 
"www.google.co.uk")));
-    Assert.assertEquals("google.com", run(query, ImmutableMap.of("foo", 
"www.google.com")));
-  }
-
-  @Test
-  public void testURLToHost() {
-    String query = "URL_TO_HOST(foo)";
-    Assert.assertEquals("www.google.co.uk", run(query, ImmutableMap.of("foo", 
"http://www.google.co.uk/my/path";)));
-  }
-
-  @Test
-  public void testURLToPort() {
-    String query = "URL_TO_PORT(foo)";
-    Assert.assertEquals(80, run(query, ImmutableMap.of("foo", 
"http://www.google.co.uk/my/path";)));
-  }
-
-  @Test
-  public void testURLToProtocol() {
-    String query = "URL_TO_PROTOCOL(foo)";
-    Assert.assertEquals("http", run(query, ImmutableMap.of("foo", 
"http://www.google.co.uk/my/path";)));
-  }
-
-  @Test
-  public void testURLToPath() {
-    String query = "URL_TO_PATH(foo)";
-    Assert.assertEquals("/my/path", run(query, ImmutableMap.of("foo", 
"http://www.google.co.uk/my/path";)));
-  }
-
-  @Test
-  public void testProtocolToName() {
-    String query = "PROTOCOL_TO_NAME(protocol)";
-    Assert.assertEquals("TCP", run(query, ImmutableMap.of("protocol", "6")));
-    Assert.assertEquals("TCP", run(query, ImmutableMap.of("protocol", 6)));
-    Assert.assertEquals(null, run(query, ImmutableMap.of("foo", 6)));
-    Assert.assertEquals("chicken", run(query, ImmutableMap.of("protocol", 
"chicken")));
-  }
-
-  @Test
-  public void testDateConversion() {
-    long expected =1452013350000L;
-    {
-      String query = "TO_EPOCH_TIMESTAMP(foo, 'yyyy-MM-dd HH:mm:ss', 'UTC')";
-      Assert.assertEquals(expected, run(query, ImmutableMap.of("foo", 
"2016-01-05 17:02:30")));
-    }
-    {
-      String query = "TO_EPOCH_TIMESTAMP(foo, 'yyyy-MM-dd HH:mm:ss')";
-      Long ts = (Long) run(query, ImmutableMap.of("foo", "2016-01-05 
17:02:30"));
-      //is it within 24 hours of the UTC?
-      Assert.assertTrue(Math.abs(ts - expected) < 8.64e+7);
-    }
-  }
-
-  @Test
-  public void testToString() {
-    Assert.assertEquals("5", run("TO_STRING(foo)", ImmutableMap.of("foo", 5)));
-  }
-
-  @Test
-  public void testToInteger() {
-    Assert.assertEquals(5, run("TO_INTEGER(foo)", ImmutableMap.of("foo", 
"5")));
-    Assert.assertEquals(5, run("TO_INTEGER(foo)", ImmutableMap.of("foo", 5)));
-  }
-
-  @Test
-  public void testToDouble() {
-    Assert.assertEquals(5.1d, run("TO_DOUBLE(foo)", ImmutableMap.of("foo", 
5.1d)));
-    Assert.assertEquals(5.1d, run("TO_DOUBLE(foo)", ImmutableMap.of("foo", 
"5.1")));
-  }
-
-  @Test
-  public void testGet() {
-    Map<String, Object> variables = ImmutableMap.of("foo", "www.google.co.uk");
-    Assert.assertEquals("www", run("GET_FIRST(SPLIT(DOMAIN_REMOVE_TLD(foo), 
'.'))", variables));
-    Assert.assertEquals("www", run("GET(SPLIT(DOMAIN_REMOVE_TLD(foo), '.'), 
0)", variables));
-    Assert.assertEquals("google", run("GET_LAST(SPLIT(DOMAIN_REMOVE_TLD(foo), 
'.'))", variables));
-    Assert.assertEquals("google", run("GET(SPLIT(DOMAIN_REMOVE_TLD(foo), '.'), 
1)", variables));
-  }
-
-  @Test
-  public void testBooleanOps() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-      put("spaced", "metron is great");
-    }};
-    Assert.assertFalse(runPredicate("not('casey' == foo and true)", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("not(not('casey' == foo and true))", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("('casey' == foo) && ( false != true )", v 
-> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("('casey' == foo) and (FALSE == TRUE)", v 
-> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'casey' == foo and FALSE", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("'casey' == foo and true", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("true", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("TRUE", v -> variableMap.get(v)));
-  }
-
-  @Test
-  public void testInCollection() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-    }};
-    Assert.assertTrue(runPredicate("foo in [ 'casey', 'david' ]", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("foo in [ ]", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in [ foo, 'david' ]", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in [ 'casey', 'david' ] and 'casey' == 
foo", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in [ 'casey', 'david' ] and foo == 
'casey'", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in [ 'casey' ]", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("foo not in [ 'casey', 'david' ]", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("foo not in [ 'casey', 'david' ] and 
'casey' == foo", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("null in [ null, 'something' ]", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("null not in [ null, 'something' ]", v -> 
variableMap.get(v)));
-  }
-
-  @Test
-  public void testInMap() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-    }};
-    Assert.assertTrue(runPredicate("'casey' in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'casey' not in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("foo not in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("'foo' in { 'foo' : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'foo' not in { 'foo' : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("foo in { 'casey' : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("foo not in { 'casey' : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("empty in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("empty not in { foo : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'foo' in { }", v -> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("null in { 'foo' : 5 }", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("null not in { 'foo' : 5 }", v -> 
variableMap.get(v)));
-  }
-
-  @Test
-  public void testInString() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-    }};
-    Assert.assertTrue(runPredicate("'case' in foo", v -> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'case' not in foo", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'case' in empty", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("'case' not in empty", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("'case' in [ foo ]", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("'case' not in [ foo ]", v -> 
variableMap.get(v)));
-    Assert.assertFalse(runPredicate("null in foo", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("null not in foo", v -> 
variableMap.get(v)));
-  }
-
-  @Test
-  public void inNestedInStatement() throws Exception {
-    final Map<String, String> variableMap = new HashMap<>();
-
-    Assert.assertTrue(runPredicate("('grok' not in 'foobar') == true", 
variableMap::get));
-    Assert.assertTrue(runPredicate("'grok' not in ('foobar' == true)", 
variableMap::get));
-    Assert.assertFalse(runPredicate("'grok' in 'grokbar' == true", 
variableMap::get));
-    Assert.assertTrue(runPredicate("false in 'grokbar' == true", 
variableMap::get));
-
-    Assert.assertTrue(runPredicate("('foo' in 'foobar') == true", 
variableMap::get));
-    Assert.assertFalse(runPredicate("'foo' in ('foobar' == true)", 
variableMap::get));
-    Assert.assertTrue(runPredicate("'grok' not in 'grokbar' == true", 
variableMap::get));
-    Assert.assertTrue(runPredicate("false in 'grokbar' == true", 
variableMap::get));
-    Assert.assertTrue(runPredicate("'foo' in ['foo'] AND 'bar' in ['bar']", 
variableMap::get));
-    Assert.assertTrue(runPredicate("('foo' in ['foo']) AND 'bar' in ['bar']", 
variableMap::get));
-    Assert.assertTrue(runPredicate("'foo' in ['foo'] AND ('bar' in ['bar'])", 
variableMap::get));
-    Assert.assertTrue(runPredicate("('foo' in ['foo']) AND ('bar' in 
['bar'])", variableMap::get));
-    Assert.assertTrue(runPredicate("('foo' in ['foo'] AND 'bar' in ['bar'])", 
variableMap::get));
-  }
-
-  @Test
-  public void testExists() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("empty", "");
-      put("spaced", "metron is great");
-    }};
-    Assert.assertTrue(runPredicate("exists(foo)", v -> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("exists(bar)", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("exists(bar) or true", v -> 
variableMap.get(v)));
-  }
-
-  @Test
-  public void testMapFunctions_advanced() throws Exception {
-    final Map<String, Object> variableMap = new HashMap<String, Object>() {{
-      put("foo", "casey");
-      put("bar", "bar.casey.grok");
-      put("ip", "192.168.0.1");
-      put("empty", "");
-      put("spaced", "metron is great");
-      put("myMap", ImmutableMap.of("casey", "apple"));
-    }};
-    Assert.assertTrue(runPredicate("MAP_EXISTS(foo, myMap)", v -> 
variableMap.get(v)));
-  }
-
-  @Test
-  public void testLogicalFunctions() throws Exception {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("foo", "casey");
-      put("ip", "192.168.0.1");
-      put("ip_src_addr", "192.168.0.1");
-      put("ip_dst_addr", "10.0.0.1");
-      put("other_ip", "10.168.0.1");
-      put("empty", "");
-      put("spaced", "metron is great");
-    }};
-    Assert.assertTrue(runPredicate("IN_SUBNET(ip, '192.168.0.0/24')", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("IN_SUBNET(ip, '192.168.0.0/24', 
'11.0.0.0/24')", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("IN_SUBNET(ip, '192.168.0.0/24', 
'11.0.0.0/24') in [true]", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("true in IN_SUBNET(ip, '192.168.0.0/24', 
'11.0.0.0/24')", v -> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("IN_SUBNET(ip_dst_addr, '192.168.0.0/24', 
'11.0.0.0/24')", v -> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("IN_SUBNET(other_ip, '192.168.0.0/24')", v 
-> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("IN_SUBNET(blah, '192.168.0.0/24')", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("true and STARTS_WITH(foo, 'ca')", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("true and STARTS_WITH(TO_UPPER(foo), 
'CA')", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("(true and STARTS_WITH(TO_UPPER(foo), 
'CA')) || true", v -> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("true and ENDS_WITH(foo, 'sey')", v -> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("not(IN_SUBNET(ip_src_addr, 
'192.168.0.0/24') and IN_SUBNET(ip_dst_addr, '192.168.0.0/24'))", v-> 
variableMap.get(v)));
-    Assert.assertTrue(runPredicate("IN_SUBNET(ip_src_addr, '192.168.0.0/24')", 
v-> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("not(IN_SUBNET(ip_src_addr, 
'192.168.0.0/24'))", v-> variableMap.get(v)));
-    Assert.assertFalse(runPredicate("IN_SUBNET(ip_dst_addr, 
'192.168.0.0/24')", v-> variableMap.get(v)));
-    Assert.assertTrue(runPredicate("not(IN_SUBNET(ip_dst_addr, 
'192.168.0.0/24'))", v-> variableMap.get(v)));
-  }
-
-  @Test
-  public void testShortCircuit_conditional() throws Exception {
-    Assert.assertEquals("foo", run("if true then 'foo' else (if false then 
'bar' else 'grok')", new HashMap<>()));
-    Assert.assertEquals("foo", run("if true_var != null && true_var then 'foo' 
else (if false then 'bar' else 'grok')", ImmutableMap.of("true_var", true)));
-    Assert.assertEquals("foo", run("if true then 'foo' else 
THROW('expression')", new HashMap<>()));
-    Assert.assertEquals("foo", run("true ? 'foo' : THROW('expression')", new 
HashMap<>()));
-    Assert.assertEquals("foo", run("if false then THROW('exception') else 
'foo'", new HashMap<>()));
-    Assert.assertEquals("foo", run("false ? THROW('exception') : 'foo'", new 
HashMap<>()));
-    Assert.assertEquals(true, run("RET_TRUE(if true then 'foo' else 
THROW('expression'))", new HashMap<>()));
-    Assert.assertEquals("foo", run("if true or (true or THROW('if exception')) 
then 'foo' else THROW('expression')", new HashMap<>()));
-    Assert.assertEquals("foo", run("if true or (false or THROW('if 
exception')) then 'foo' else THROW('expression')", new HashMap<>()));
-    Assert.assertEquals("foo", run("if NOT(true or (false or THROW('if 
exception'))) then THROW('expression') else 'foo'", new HashMap<>()));
-    Assert.assertEquals("foo", run("if NOT('metron' in [ 'metron', 
'metronicus'] ) then THROW('expression') else 'foo'", new HashMap<>()));
-  }
-
-  @Test
-  public void testShortCircuit_boolean() throws Exception {
-    Assert.assertTrue(runPredicate("'metron' in ['metron', 'metronicus', 
'mortron'] or (true or THROW('exception'))", x -> null));
-    Assert.assertTrue(runPredicate("true or (true or THROW('exception'))", x 
-> null));
-    Assert.assertTrue(runPredicate("true or (false or THROW('exception'))", x 
-> null));
-    Assert.assertTrue(runPredicate("TO_UPPER('foo') == 'FOO' or (true or 
THROW('exception'))", x -> null));
-    Assert.assertFalse(runPredicate("false and (true or THROW('exception'))", 
x -> null));
-    Assert.assertTrue(runPredicate("true or false or false or true", x -> 
null));
-    Assert.assertFalse(runPredicate("false or (false and THROW('exception'))", 
x -> null));
-    Assert.assertTrue(runPredicate("'casey' == 'casey' or THROW('exception')", 
x -> null));
-    Assert.assertTrue(runPredicate("TO_UPPER('casey') == 'CASEY' or 
THROW('exception')", x -> null));
-    Assert.assertTrue(runPredicate("NOT(TO_UPPER('casey') != 'CASEY') or 
THROW('exception')", x -> null));
-    Assert.assertTrue(runPredicate("(TO_UPPER('casey') == 'CASEY') or 
THROW('exception')", x -> null));
-    Assert.assertFalse(runPredicate("NOT(NOT(TO_UPPER('casey') != 'CASEY') or 
THROW('exception'))", x -> null));
-    Assert.assertFalse(runPredicate("NOT(NOT(TO_UPPER('casey') != 'CASEY')) 
and THROW('exception')", x -> null));
-    Assert.assertTrue(runPredicate("RET_TRUE('foo') or THROW('exception')", x 
-> null));
-    Assert.assertFalse(runPredicate("NOT(foo == null or THROW('exception')) 
and THROW('and exception')", x -> null));
-    Assert.assertTrue(runPredicate("(foo == null or THROW('exception') ) or 
THROW('and exception')", x -> null));
-    Assert.assertTrue(runPredicate("( RET_TRUE('foo', true, false) or ( foo == 
null or THROW('exception') ) or THROW('and exception')) or THROW('or 
exception')", x -> null));
-  }
-
-  @Rule
-  public ExpectedException thrown = ExpectedException.none();
-
-  @Test
-  public void non_boolean_predicate_throws_exception() {
-    final Map<String, String> variableMap = new HashMap<String, String>() {{
-      put("protocol", "http");
-    }};
-    thrown.expect(IllegalArgumentException.class);
-    thrown.expectMessage("The rule 'TO_UPPER(protocol)' does not return a 
boolean value.");
-    runPredicate("TO_UPPER(protocol)", v -> variableMap.get(v));
-  }
-}

http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ArithmeticEvaluatorTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ArithmeticEvaluatorTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ArithmeticEvaluatorTest.java
deleted file mode 100644
index de9f722..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ArithmeticEvaluatorTest.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar.evaluators;
-
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.metron.common.dsl.Token;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-@SuppressWarnings("unchecked")
-public class ArithmeticEvaluatorTest {
-  ArithmeticEvaluator evaluator = ArithmeticEvaluator.INSTANCE;
-
-  @Test
-  public void evaluateDoubleShouldReturnDoubleAdd() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Double> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2D);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Double);
-    assertEquals(3.0D, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerAdd() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(3, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateFloatsShouldReturnFloatAdd() throws Exception {
-    Token<Float> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1F);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Float);
-    assertEquals(3F, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateLongsShouldReturnLongAdd() throws Exception {
-    Token<Long> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1L);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Long);
-    assertEquals(3L, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnDoubleMul() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Double> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2D);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Double);
-    assertEquals(2.0D, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerMul() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(2, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateFloatsShouldReturnFloatMul() throws Exception {
-    Token<Float> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1F);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Float);
-    assertEquals(2F, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateLongsShouldReturnLongMul() throws Exception {
-    Token<Long> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1L);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Long);
-    assertEquals(2L, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateDoubleShouldReturnDoubleSub() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Double> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2D);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Double);
-    assertEquals(-1.0D, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerSub() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(-1, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateFloatsShouldReturnFloatSub() throws Exception {
-    Token<Float> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1F);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Float);
-    assertEquals(-1F, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateLongsShouldReturnLongSub() throws Exception {
-    Token<Long> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1L);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Long);
-    assertEquals(-1L, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateDoubleShouldReturnDoubleDiv() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Double> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2D);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Double);
-    assertEquals(1 / 2D, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerDiv() throws Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(1 / 2, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateFloatsShouldReturnFloatDiv() throws Exception {
-    Token<Float> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1F);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Float);
-    assertEquals(0.5F, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateLongsShouldReturnLongDiv() throws Exception {
-    Token<Long> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1L);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Long);
-    assertEquals(0L, evaluated.getValue());
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void evaluateShouldThroughIllegalArgumentExceptionWhenInputIsNull() 
throws Exception {
-    
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 null);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void 
evaluateShouldThroughIllegalArgumentExceptionWhenInputsKeyIsNull() throws 
Exception {
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(null, 
mock(Token.class));
-    
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void 
evaluateShouldThroughIllegalArgumentExceptionWhenInputsValueIsNull() throws 
Exception {
-    Pair<Token<? extends Number>, Token<? extends Number>> p = 
Pair.of(mock(Token.class), null);
-    
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 p);
-  }
-
-  @Test
-  public void evaluateShouldConvertShortsToIntegersType() throws Exception {
-    Token<Short> l = mock(Token.class);
-    when(l.getValue()).thenReturn((short) 2);
-
-    Token<Short> r = mock(Token.class);
-    when(r.getValue()).thenReturn((short) 3);
-
-    Token<? extends Number> evaluated0 = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 Pair.of(l, r));
-    Token<? extends Number> evaluated1 = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 Pair.of(l, r));
-    Token<? extends Number> evaluated2 = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 Pair.of(l, r));
-    Token<? extends Number> evaluated3 = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 Pair.of(l, r));
-
-    assertTrue(evaluated0.getValue() instanceof Integer);
-    assertEquals(5, evaluated0.getValue());
-
-    assertTrue(evaluated1.getValue() instanceof Integer);
-    assertEquals(-1, evaluated1.getValue());
-
-    assertTrue(evaluated2.getValue() instanceof Integer);
-    assertEquals(6, evaluated2.getValue());
-
-    assertTrue(evaluated3.getValue() instanceof Integer);
-    assertEquals(0, evaluated3.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerWhenLeftsValueIsNull() throws 
Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(null);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(2);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(2, evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateIntegerShouldReturnIntegerWhenRightsValueIsNull() throws 
Exception {
-    Token<Integer> l = mock(Token.class);
-    when(l.getValue()).thenReturn(1);
-
-    Token<Integer> r = mock(Token.class);
-    when(r.getValue()).thenReturn(null);
-
-    Pair<Token<? extends Number>, Token<? extends Number>> p = Pair.of(l, r);
-
-    Token<? extends Number> evaluated = 
evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 p);
-
-    assertTrue(evaluated.getValue() instanceof Integer);
-    assertEquals(1, evaluated.getValue());
-  }
-
-  @Test
-  public void verifyExpectedReturnTypes() throws Exception {
-    Token<Integer> integer = mock(Token.class);
-    when(integer.getValue()).thenReturn(1);
-
-    Token<Long> lng = mock(Token.class);
-    when(lng.getValue()).thenReturn(1L);
-
-    Token<Double> dbl = mock(Token.class);
-    when(dbl.getValue()).thenReturn(1.0D);
-
-    Token<Float> flt = mock(Token.class);
-    when(flt.getValue()).thenReturn(1.0F);
-
-    Map<Pair<Token<? extends Number>, Token<? extends Number>>, Class<? 
extends Number>> expectedReturnTypeMappings =
-        new HashMap<Pair<Token<? extends Number>, Token<? extends Number>>, 
Class<? extends Number>>() {{
-          put(Pair.of(flt, lng), Float.class);
-          put(Pair.of(flt, dbl), Double.class);
-          put(Pair.of(flt, flt), Float.class);
-          put(Pair.of(flt, integer), Float.class);
-
-          put(Pair.of(lng, lng), Long.class);
-          put(Pair.of(lng, dbl), Double.class);
-          put(Pair.of(lng, flt), Float.class);
-          put(Pair.of(lng, integer), Long.class);
-
-          put(Pair.of(dbl, lng), Double.class);
-          put(Pair.of(dbl, dbl), Double.class);
-          put(Pair.of(dbl, flt), Double.class);
-          put(Pair.of(dbl, integer), Double.class);
-
-          put(Pair.of(integer, lng), Long.class);
-          put(Pair.of(integer, dbl), Double.class);
-          put(Pair.of(integer, flt), Float.class);
-          put(Pair.of(integer, integer), Integer.class);
-    }};
-
-    expectedReturnTypeMappings.forEach( (pair, expectedClass) -> {
-      
assertTrue(evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.addition(null),
 pair).getValue().getClass() == expectedClass);
-      
assertTrue(evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.division(null),
 pair).getValue().getClass() == expectedClass);
-      
assertTrue(evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.subtraction(null),
 pair).getValue().getClass() == expectedClass);
-      
assertTrue(evaluator.evaluate(ArithmeticEvaluator.ArithmeticEvaluatorFunctions.multiplication(null),
 pair).getValue().getClass() == expectedClass);
-    });
-  }
-}

http://git-wip-us.apache.org/repos/asf/metron/blob/a5b13777/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ComparisonExpressionWithOperatorEvaluatorTest.java
----------------------------------------------------------------------
diff --git 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ComparisonExpressionWithOperatorEvaluatorTest.java
 
b/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ComparisonExpressionWithOperatorEvaluatorTest.java
deleted file mode 100644
index 0c20eb4..0000000
--- 
a/metron-platform/metron-common/src/test/java/org/apache/metron/common/stellar/evaluators/ComparisonExpressionWithOperatorEvaluatorTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.metron.common.stellar.evaluators;
-
-import org.antlr.v4.runtime.tree.TerminalNode;
-import org.apache.metron.common.dsl.ParseException;
-import org.apache.metron.common.dsl.Token;
-import org.apache.metron.common.stellar.generated.StellarParser;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.powermock.api.mockito.PowerMockito.mock;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@SuppressWarnings({"unchecked"})
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({ComparisonExpressionWithOperatorEvaluator.class, 
ComparisonExpressionWithOperatorEvaluator.Strategy.class})
-public class ComparisonExpressionWithOperatorEvaluatorTest {
-  @Rule
-  public final ExpectedException exception = ExpectedException.none();
-
-  final ComparisonExpressionWithOperatorEvaluator evaluator = 
ComparisonExpressionWithOperatorEvaluator.INSTANCE;
-
-  @Test
-  public void evaluateEqShouldProperlyCallEqualityOperatorsEvaluator() throws 
Exception {
-    Token<Double> left = mock(Token.class);
-    when(left.getValue()).thenReturn(1D);
-
-    Token<Double> right = mock(Token.class);
-    when(right.getValue()).thenReturn(1D);
-
-    StellarParser.ComparisonOpContext op = 
mock(StellarParser.ComparisonOpContext.class);
-    when(op.EQ()).thenReturn(mock(TerminalNode.class));
-
-    Token<Boolean> evaluated = evaluator.evaluate(left, right, op, null);
-
-    assertTrue(evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateNotEqShouldProperlyCallEqualityOperatorsEvaluator() 
throws Exception {
-    Token<Double> left = mock(Token.class);
-    when(left.getValue()).thenReturn(1D);
-
-    Token<Double> right = mock(Token.class);
-    when(right.getValue()).thenReturn(1D);
-
-    StellarParser.ComparisonOpContext op = 
mock(StellarParser.ComparisonOpContext.class);
-    when(op.NEQ()).thenReturn(mock(TerminalNode.class));
-
-    Token<Boolean> evaluated = evaluator.evaluate(left, right, op, null);
-
-    assertFalse(evaluated.getValue());
-  }
-
-  @Test
-  public void evaluateLessThanEqShouldProperlyCallEqualityOperatorsEvaluator() 
throws Exception {
-    Token<Double> left = mock(Token.class);
-    when(left.getValue()).thenReturn(0D);
-
-    Token<Double> right = mock(Token.class);
-    when(right.getValue()).thenReturn(1D);
-
-    StellarParser.ComparisonOpContext op = 
mock(StellarParser.ComparisonOpContext.class);
-    when(op.LTE()).thenReturn(mock(TerminalNode.class));
-
-    Token<Boolean> evaluated = evaluator.evaluate(left, right, op, null);
-
-    assertTrue(evaluated.getValue());
-  }
-
-  @Test
-  public void unexpectedOperatorShouldThrowException() throws Exception {
-    exception.expect(ParseException.class);
-    exception.expectMessage("Unsupported operations. The following expression 
is invalid: ");
-
-    Token<Double> left = mock(Token.class);
-    when(left.getValue()).thenReturn(0D);
-
-    Token<Double> right = mock(Token.class);
-    when(right.getValue()).thenReturn(1D);
-
-    StellarParser.ComparisonOpContext op = 
mock(StellarParser.ComparisonOpContext.class);
-
-    evaluator.evaluate(left, right, op, null);
-  }
-
-  @Test
-  public void nonExpectedOperatorShouldThrowException() throws Exception {
-    exception.expect(ParseException.class);
-    exception.expectMessage("Unsupported operations. The following expression 
is invalid: ");
-
-    Token<String> left = mock(Token.class);
-    when(left.getValue()).thenReturn("adsf");
-
-    Token<Double> right = mock(Token.class);
-    when(right.getValue()).thenReturn(1D);
-
-    StellarParser.ComparisonOpContext op = 
mock(StellarParser.ComparisonOpContext.class);
-    when(op.LTE()).thenReturn(mock(TerminalNode.class));
-
-    evaluator.evaluate(left, right, op, null);
-  }
-}
\ No newline at end of file

Reply via email to