summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-09-03 15:36:04 +0200
committerJon Bratseth <bratseth@gmail.com>2020-09-03 15:36:04 +0200
commitfd5acdd85349977a2f063b2b28ef0318e0457741 (patch)
tree455cf598ebd08f7add465a3ec06ddea86b228806 /container-search
parente6f3bc58eb76d38ec80857c5d96f68a91eb115ec (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.java30
-rw-r--r--container-search/src/test/java/com/yahoo/search/result/FeatureDataTestCase.java10
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 =
"{" +