Skip to content
Snippets Groups Projects
Commit 283a8618 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Tests written. Confirmed that you can send a Java generated (and not just...

Tests written. Confirmed that you can send a Java generated (and not just Jackson half-baked/serialized) config object into the Model.
parent a2a78699
Branches
Tags
No related merge requests found
package no.bioforsk.vips.model.naerstadmodel;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package no.bioforsk.vips.model.naerstadmodel;
import java.io.BufferedInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import junit.framework.TestCase;
import no.bioforsk.vips.entity.ModelConfiguration;
import no.bioforsk.vips.entity.Observation;
import no.bioforsk.vips.model.ModelId;
import no.bioforsk.vips.util.JSONUtil;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.MappingJsonFactory;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
/**
*
* @author treinar
*/
public class NaerstadModelTest extends TestCase {
public NaerstadModelTest(String testName) {
super(testName);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Test of getResult method, of class NaerstadModel.
*/
public void testGetResult() {
System.out.println("getResult");
NaerstadModel instance = new NaerstadModel();
instance.setConfiguration(this.getConfiguration());
List result = instance.getResult();
//System.out.println("Result size=" + result.size());
assertTrue(result.size() == 96);
}
/**
* Test of getModelId method, of class NaerstadModel.
*/
public void testGetModelId() {
System.out.println("getModelId");
NaerstadModel instance = new NaerstadModel();
String expResult = "NAERSTADMO";
String result = instance.getModelId().toString();
assertEquals(expResult, result);
}
/**
* Test of getModelName method, of class NaerstadModel.
*/
public void testGetModelName_0args() {
System.out.println("getModelName");
NaerstadModel instance = new NaerstadModel();
String expResult = "Naerstad Model";
String result = instance.getModelName();
assertEquals(expResult, result);
}
/**
* Test of getModelName method, of class NaerstadModel.
*/
public void testGetModelName_String() {
System.out.println("getModelName");
String language = "nb";
NaerstadModel instance = new NaerstadModel();
String expResult = "Nærstads modell";
String result = instance.getModelName(language);
assertEquals(expResult, result);
}
/**
* Test of getModelUsage method, of class NaerstadModel.
*/
public void testGetModelUsage_0args() {
System.out.println("getModelUsage");
NaerstadModel instance = new NaerstadModel();
String result = instance.getModelUsage();
assertNotNull(result);
}
/**
* Test of getModelUsage method, of class NaerstadModel.
*/
public void testGetModelUsage_String() {
System.out.println("getModelUsage");
String language = "nb";
NaerstadModel instance = new NaerstadModel();
String result = instance.getModelUsage(language);
assertNotNull(result);
}
/**
* Test of getSampleConfig method, of class NaerstadModel.
*/
public void testGetSampleConfig() {
System.out.println("getSampleConfig");
NaerstadModel instance = new NaerstadModel();
String expResult = "";
String result = instance.getSampleConfig();
assertTrue(JSONUtil.isValidJSON(result));
}
/**
* Test of setConfiguration method, of class NaerstadModel.
*/
public void testSetConfiguration() {
System.out.println("setConfiguration");
NaerstadModel instance = new NaerstadModel();
instance.setConfiguration(this.getConfiguration());
}
private ModelConfiguration getConfiguration()
{
try {
ModelConfiguration config = new ModelConfiguration();
config.setModelId("NAERSTADMO");
BufferedInputStream inputStream = new BufferedInputStream(this.getClass().getResourceAsStream("/JSONWeatherData.json"));
JsonFactory f = new MappingJsonFactory();
JsonParser jp = f.createJsonParser(inputStream);
JsonNode all = jp.readValueAsTree();
List<Observation> observations = new ArrayList<>();
ObjectMapper mapper = new ObjectMapper();
Date firstDate = null;
Date lastDate = null;
if(all.isArray())
{
for(JsonNode node : all){
Date timeMeasured = (Date)mapper.convertValue(node.get("timeMeasured").getTextValue(), new TypeReference<Date>(){});
if(firstDate == null || firstDate.compareTo(timeMeasured) > 0)
{
firstDate = timeMeasured;
}
if(lastDate == null || lastDate.compareTo(timeMeasured) < 0)
{
lastDate = timeMeasured;
}
//System.out.println(node.toString());
Observation observation = new Observation();
observation.setTimeMeasured(timeMeasured);
observation.setLogIntervalId(node.get("logIntervalId").getIntValue());
observation.setElementMeasurementTypeId(node.get("elementMeasurementTypeId").getTextValue());
observation.setValue(node.get("value").getDoubleValue());
observations.add(observation);
}
}
else
{
fail("Data input from file is not a JSON array");
}
config.setConfigParameter("observations", observations);
config.setConfigParameter("calculationStart", firstDate);
config.setConfigParameter("calculationEnd", lastDate);
return config;
} catch (IOException ex) {
return null;
}
}
/**
* Test of getTSWH method, of class NaerstadModel.
*/
public void testGetTSWH() {
System.out.println("getTSWH");
Integer WHt0 = 1;
Integer WHt1 = 2;
Integer WHt2 = 3;
Integer WHt3 = 4;
Integer WHt4 = 5;
Double Tt0 = 0.4;
Double Tt1 = 0.65;
Double Tt2 = 0.234;
Double Tt3 = 10.4;
Double Tt4 = 7d;
NaerstadModel instance = new NaerstadModel();
Double expResult = 1092.704;
Double result = instance.getTSWH(WHt0, WHt1, WHt2, WHt3, WHt4, Tt0, Tt1, Tt2, Tt3, Tt4);
assertEquals(expResult, result);
}
/**
* Test of getVRS method, of class NaerstadModel.
*/
public void testGetVRS() {
System.out.println("getVRS");
Double VAS = 0.5;
Integer RTA = 1;
Double IRTA = 0.4;
Double SFRS = 2.3;
Double VRSLastHour = 2.1;
Double RR = 0.05;
Integer WHSLastHour = 3;
NaerstadModel instance = new NaerstadModel();
Double expResult = 3.0818301132374937;
Double result = instance.getVRS(VAS, RTA, IRTA, SFRS, VRSLastHour, RR, WHSLastHour);
assertEquals(expResult, result);
}
/**
* Test of getRAD method, of class NaerstadModel.
*/
public void testGetRAD() {
System.out.println("getRAD");
double currentRadiation = 200.0;
double previousRadiation = 197.0;
NaerstadModel instance = new NaerstadModel();
Integer expResult = 0;
Integer result = instance.getRAD(currentRadiation, previousRadiation);
assertEquals(expResult, result);
}
/**
* Test of getDROP method, of class NaerstadModel.
*/
public void testGetDROP() {
System.out.println("getDROP");
double currentWVD = 20.0;
double previousWVD = 6.0;
NaerstadModel instance = new NaerstadModel();
Integer expResult = 0;
Integer result = instance.getDROP(currentWVD, previousWVD);
assertEquals(expResult, result);
previousWVD = 3.0;
expResult = 1;
result = instance.getDROP(currentWVD, previousWVD);
assertEquals(expResult, result);
}
/**
* Test of getHH1 method, of class NaerstadModel.
*/
public void testGetHH1() {
System.out.println("getHH1");
double temperature = 15.0;
double relativeHumidity = 80.0;
NaerstadModel instance = new NaerstadModel();
Integer expResult = 0;
Integer result = instance.getHH1(temperature, relativeHumidity);
assertEquals(expResult, result);
}
/**
* Test of getHH2 method, of class NaerstadModel.
*/
public void testGetHH2() {
System.out.println("getHH2");
double temperature = 15.0;
double relativeHumidity = 80.0;
NaerstadModel instance = new NaerstadModel();
Integer expResult = 1;
Integer result = instance.getHH2(temperature, relativeHumidity);
assertEquals(expResult, result);
}
}
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment