[ https://issues.apache.org/jira/browse/METRON-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16176415#comment-16176415 ]
ASF GitHub Bot commented on METRON-1079: ---------------------------------------- Github user ottobackwards commented on a diff in the pull request: https://github.com/apache/metron/pull/681#discussion_r140493668 --- Diff: metron-stellar/stellar-common/src/test/java/org/apache/metron/stellar/dsl/functions/BasicStellarTest.java --- @@ -251,6 +251,142 @@ public void testNull() { } @Test + public void testNaN(){ + // any equity is false + // https://docs.oracle.com/javase/specs/jls/se6/html/typesValues.html + { + String query = "NaN == NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "5.0 == NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NULL == NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "'metron' == NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + + // any inequity is true + { + String query = "NaN != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "5 != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "'metron' != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + + // any > >= < <= is false + { + String query = "NaN > 5"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN < 5"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN >= 5"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN <= 5"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN > NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN < NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN >= NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN <= NaN"; + Assert.assertFalse(runPredicate(query,new HashMap<>())); + } + + // all operations + { + String query = "(5 + NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "5 + NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(5 - NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "5 - NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(5 / NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "5 / NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(5 * NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "5 * NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(NaN + NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN + NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(NaN - NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN - NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(NaN * NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN * NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } + { + String query = "(NaN / NaN) != NaN"; + Assert.assertTrue(runPredicate(query,new HashMap<>())); + } + { + String query = "NaN / NaN"; + Assert.assertTrue(run(query,new HashMap<>()).toString().equals("NaN")); + } --- End diff -- done > STELLAR NaN should be a keyword > ------------------------------- > > Key: METRON-1079 > URL: https://issues.apache.org/jira/browse/METRON-1079 > Project: Metron > Issue Type: Bug > Reporter: Otto Fowler > Assignee: Otto Fowler > > Right now, NaN is not a keyword, and it's use in stellar expressions is > probably not being evaluated as NaN but as NULL. -- This message was sent by Atlassian JIRA (v6.4.14#64029)