diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-09-03 15:36:04 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-09-03 15:36:04 +0200 |
commit | fd5acdd85349977a2f063b2b28ef0318e0457741 (patch) | |
tree | 455cf598ebd08f7add465a3ec06ddea86b228806 /container-search | |
parent | e6f3bc58eb76d38ec80857c5d96f68a91eb115ec (diff) |
Always create value map if invoked
Diffstat (limited to 'container-search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/result/FeatureData.java | 30 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java | 10 |
2 files changed, 20 insertions, 20 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java index dda8ba103c6..fd41d4ee10c 100644 --- a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java +++ b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java @@ -74,16 +74,15 @@ public class FeatureData implements Inspectable, JsonProducer { * (that is, if it is a tensor with nonzero rank) */ public Double getDouble(String featureName) { - Double value = null; - if (decodedDoubles != null) - value = decodedDoubles.get(featureName); - if (value != null) - return value; + if (decodedDoubles == null) + decodedDoubles = new HashMap<>(); + + Double value = decodedDoubles.get(featureName); + if (value != null) return value; value = decodeDouble(featureName); - if (value != null && decodedDoubles == null) - decodedDoubles = new HashMap<>(); - decodedDoubles.put(featureName, value); + if (value != null) + decodedDoubles.put(featureName, value); return value; } @@ -103,16 +102,15 @@ public class FeatureData implements Inspectable, JsonProducer { * This will return any feature value: Scalars are returned as a rank 0 tensor. */ public Tensor getTensor(String featureName) { - Tensor value = null; - if (decodedTensors != null) - value = decodedTensors.get(featureName); - if (value != null) - return value; + if (decodedTensors == null) + decodedTensors = new HashMap<>(); + + Tensor value = decodedTensors.get(featureName); + if (value != null) return value; value = decodeTensor(featureName); - if (value != null && decodedTensors == null) - decodedTensors = new HashMap<>(); - decodedTensors.put(featureName, value); + if (value != null) + decodedTensors.put(featureName, value); return value; } diff --git a/container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java b/container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java index d68d13a40ba..3c8e147029c 100644 --- a/container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java @@ -33,19 +33,21 @@ public class FeatureDataTestCase { FeatureData featureData = new FeatureData(new SlimeAdapter(features)); assertEquals("scalar1,scalar2,tensor1,tensor2", featureData.featureNames().stream().sorted().collect(Collectors.joining(","))); + assertNull(featureData.getDouble("nosuch1")); assertEquals(1.5, featureData.getDouble("scalar1"), delta); assertEquals(2.5, featureData.getDouble("scalar2"), delta); assertEquals("Cached lookup", 2.5, featureData.getDouble("scalar2"), delta); - assertNull(featureData.getDouble("nosuch")); - assertNull(featureData.getDouble("nosuch")); + assertNull(featureData.getDouble("nosuch2")); + assertNull(featureData.getDouble("nosuch2")); + assertNull(featureData.getTensor("nosuch1")); assertEquals(Tensor.from(1.5), featureData.getTensor("scalar1")); assertEquals(Tensor.from(2.5), featureData.getTensor("scalar2")); assertEquals(tensor1, featureData.getTensor("tensor1")); assertEquals(tensor2, featureData.getTensor("tensor2")); assertEquals("Cached lookup", tensor2, featureData.getTensor("tensor2")); - assertNull(featureData.getTensor("nosuch")); - assertNull(featureData.getTensor("nosuch")); + assertNull(featureData.getTensor("nosuch2")); + assertNull(featureData.getTensor("nosuch2")); String expectedJson = "{" + |