You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2014/05/29 03:46:33 UTC
[2/2] git commit: AMBARI-5922. Predicates don't work on fields with
float values. (swagle)
AMBARI-5922. Predicates don't work on fields with float values. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9099842a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9099842a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9099842a
Branch: refs/heads/trunk
Commit: 9099842a0e010402d07f542cf5b964d364d7ae85
Parents: ebe04d4
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Wed May 28 17:59:00 2014 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Wed May 28 18:46:25 2014 -0700
----------------------------------------------------------------------
.../controller/predicate/ComparisonPredicate.java | 6 +++---
.../controller/predicate/GreaterPredicateTest.java | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/9099842a/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/ComparisonPredicate.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/ComparisonPredicate.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/ComparisonPredicate.java
index e8102d6..de429e8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/ComparisonPredicate.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/predicate/ComparisonPredicate.java
@@ -77,10 +77,10 @@ public abstract class ComparisonPredicate<T> extends PropertyPredicate implement
}
protected int compareValueTo(Object propertyValue) throws ClassCastException{
-
if (doubleValue != null) {
- if (propertyValue instanceof Number ) {
- return (int) (doubleValue - ((Number) propertyValue).doubleValue());
+ if (propertyValue instanceof Number) {
+
+ return doubleValue.compareTo(((Number) propertyValue).doubleValue());
}
else if (propertyValue instanceof String) {
Double doubleFromString = stringToDouble((String) propertyValue);
http://git-wip-us.apache.org/repos/asf/ambari/blob/9099842a/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
index af79eff..47fcaae 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/predicate/GreaterPredicateTest.java
@@ -67,4 +67,20 @@ public class GreaterPredicateTest {
Assert.assertEquals(1, ids.size());
Assert.assertTrue(ids.contains(propertyId));
}
+
+ @Test
+ public void testApplyWithSmallFloats() {
+ Resource resource = new ResourceImpl(Resource.Type.HostComponent);
+ String propertyId = PropertyHelper.getPropertyId("category1", "foo");
+ Predicate predicate = new GreaterPredicate<Double>(propertyId, 0.1);
+
+ resource.setProperty(propertyId, 1.3);
+ Assert.assertTrue(predicate.evaluate(resource));
+
+ resource.setProperty(propertyId, 0.06);
+ Assert.assertFalse(predicate.evaluate(resource));
+
+ resource.setProperty(propertyId, 100.3);
+ Assert.assertTrue(predicate.evaluate(resource));
+ }
}