package io.seldon.prediction; import java.io.IOException; import org.junit.Test; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; import junit.framework.Assert; public class PredictionServiceResultTest { @Test public void createFromJSONPredictionsOnly() throws JsonProcessingException, IOException { String json = "{\"predictions\":[{\"predictedClass\":\"cl1\",\"prediction\":1.0,\"confidence\":0.9}]}"; ObjectMapper mapper = new ObjectMapper(); ObjectReader reader = mapper.reader(PredictionServiceResult.class); PredictionServiceResult res = reader.readValue(json); Assert.assertNotNull(res); Assert.assertEquals(1.0, res.predictions.get(0).prediction); } @Test public void createFromJSONPreditionsAndMeta() throws JsonProcessingException, IOException { String json = "{\"meta\":{\"modelName\":\"amodel\"},\"predictions\":[{\"predictedClass\":\"cl1\",\"prediction\":1.0,\"confidence\":0.9}]}"; ObjectMapper mapper = new ObjectMapper(); ObjectReader reader = mapper.reader(PredictionServiceResult.class); PredictionServiceResult res = reader.readValue(json); Assert.assertNotNull(res); Assert.assertEquals(1.0, res.predictions.get(0).prediction); Assert.assertEquals("amodel", res.getMeta().modelName); } @Test public void createFromJSON() throws JsonProcessingException, IOException { String json = "{\"meta\":{\"modelName\":\"amodel\"},\"predictions\":[{\"predictedClass\":\"cl1\",\"prediction\":1.0,\"confidence\":0.9}],\"custom\":{\"somefield\":\"somevalue\"}}"; ObjectMapper mapper = new ObjectMapper(); ObjectReader reader = mapper.reader(PredictionServiceResult.class); PredictionServiceResult res = reader.readValue(json); Assert.assertNotNull(res); Assert.assertEquals(1.0, res.predictions.get(0).prediction); Assert.assertEquals("amodel", res.getMeta().modelName); } }