AndroidAPS/app/src/test/java/info/nightscout/androidaps/data/IobTotalTest.java

145 lines
5 KiB
Java
Raw Normal View History

2018-03-27 16:41:37 +02:00
package info.nightscout.androidaps.data;
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.modules.junit4.PowerMockRunner;
import info.nightscout.utils.DateUtil;
/**
* Created by mike on 27.03.2018.
*/
@RunWith(PowerMockRunner.class)
public class IobTotalTest {
long now = DateUtil.now();
@Test
public void copytest() {
IobTotal a = new IobTotal(now);
a.iob = 10;
IobTotal b = a.copy();
Assert.assertEquals(a.iob, b.iob, 0.01d);
}
@Test
public void plusTest() {
IobTotal a = new IobTotal(now);
a.iob = 10;
a.activity = 10;
a.bolussnooze = 10;
a.basaliob = 10;
a.netbasalinsulin = 10;
a.hightempinsulin = 10;
a.netInsulin = 10;
a.extendedBolusInsulin = 10;
a.plus(a.copy());
Assert.assertEquals(20, a.iob, 0.01d);
Assert.assertEquals(20, a.activity, 0.01d);
Assert.assertEquals(20, a.bolussnooze, 0.01d);
Assert.assertEquals(20, a.basaliob, 0.01d);
Assert.assertEquals(20, a.netbasalinsulin, 0.01d);
Assert.assertEquals(20, a.hightempinsulin, 0.01d);
Assert.assertEquals(20, a.netInsulin, 0.01d);
Assert.assertEquals(20, a.extendedBolusInsulin, 0.01d);
}
@Test
public void combineTest() {
IobTotal a = new IobTotal(now);
a.iob = 10;
a.activity = 11;
a.bolussnooze = 12;
a.basaliob = 13;
a.netbasalinsulin = 14;
a.hightempinsulin = 15;
a.netInsulin = 16;
a.extendedBolusInsulin = 17;
IobTotal b = a.copy();
IobTotal c = IobTotal.combine(a, b);
Assert.assertEquals(a.time, c.time, 0.01d);
Assert.assertEquals(23, c.iob, 0.01d);
Assert.assertEquals(22, c.activity, 0.01d);
Assert.assertEquals(12, c.bolussnooze, 0.01d);
Assert.assertEquals(26, c.basaliob, 0.01d);
Assert.assertEquals(28, c.netbasalinsulin, 0.01d);
Assert.assertEquals(30, c.hightempinsulin, 0.01d);
Assert.assertEquals(32, c.netInsulin, 0.01d);
Assert.assertEquals(34, c.extendedBolusInsulin, 0.01d);
}
@Test
public void roundTest() {
IobTotal a = new IobTotal(now);
a.iob = 1.1111111111111;
a.activity = 1.1111111111111;
a.bolussnooze = 1.1111111111111;
a.basaliob = 1.1111111111111;
a.netbasalinsulin = 1.1111111111111;
a.hightempinsulin = 1.1111111111111;
a.netInsulin = 1.1111111111111;
a.extendedBolusInsulin = 1.1111111111111;
a.round();
Assert.assertEquals(1.111d, a.iob, 0.00001d);
Assert.assertEquals(1.1111d, a.activity, 0.00001d);
Assert.assertEquals(1.1111d, a.bolussnooze, 0.00001d);
Assert.assertEquals(1.111d, a.basaliob, 0.00001d);
Assert.assertEquals(1.111d, a.netbasalinsulin, 0.00001d);
Assert.assertEquals(1.111d, a.hightempinsulin, 0.00001d);
Assert.assertEquals(1.111d, a.netInsulin, 0.00001d);
Assert.assertEquals(1.111d, a.extendedBolusInsulin, 0.00001d);
}
@Test
public void jsonTest() {
IobTotal a = new IobTotal(now);
a.iob = 10;
a.activity = 11;
a.bolussnooze = 12;
a.basaliob = 13;
a.netbasalinsulin = 14;
a.hightempinsulin = 15;
a.netInsulin = 16;
a.extendedBolusInsulin = 17;
try {
JSONObject j = a.json();
Assert.assertEquals(a.iob, j.getDouble("iob"), 0.0000001d);
Assert.assertEquals(a.basaliob, j.getDouble("basaliob"), 0.0000001d);
Assert.assertEquals(a.activity, j.getDouble("activity"), 0.0000001d);
Assert.assertEquals(now, DateUtil.fromISODateString(j.getString("time")).getTime(), 1000);
} catch (Exception e) {
Assert.fail("Exception: " + e.getMessage());
}
}
@Test
public void determineBasalJsonTest() {
IobTotal a = new IobTotal(now);
a.iob = 10;
a.activity = 11;
a.bolussnooze = 12;
a.basaliob = 13;
a.netbasalinsulin = 14;
a.hightempinsulin = 15;
a.netInsulin = 16;
a.extendedBolusInsulin = 17;
a.iobWithZeroTemp = new IobTotal(now);
try {
JSONObject j = a.determineBasalJson();
Assert.assertEquals(a.iob, j.getDouble("iob"), 0.0000001d);
Assert.assertEquals(a.basaliob, j.getDouble("basaliob"), 0.0000001d);
Assert.assertEquals(a.bolussnooze, j.getDouble("bolussnooze"), 0.0000001d);
Assert.assertEquals(a.activity, j.getDouble("activity"), 0.0000001d);
Assert.assertEquals(0, j.getLong("lastBolusTime"));
Assert.assertEquals(now, DateUtil.fromISODateString(j.getString("time")).getTime(), 1000);
2018-03-27 19:45:44 +02:00
Assert.assertNotNull(j.getJSONObject("iobWithZeroTemp"));
2018-03-27 16:41:37 +02:00
} catch (Exception e) {
Assert.fail("Exception: " + e.getMessage());
}
}
}