Skip to content

Commit

Permalink
Add test for merging glucose entries
Browse files Browse the repository at this point in the history
  • Loading branch information
ecc1 committed Sep 20, 2018
1 parent d8f9cea commit 894b6d5
Show file tree
Hide file tree
Showing 6 changed files with 959 additions and 6 deletions.
4 changes: 4 additions & 0 deletions common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ import (
"time"
)

const (
testDataDir = "testdata"
)

// Force timezone to match test data.
func init() {
os.Setenv("TZ", "America/New_York")
Expand Down
45 changes: 45 additions & 0 deletions nightscout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package dexcom

import (
"encoding/json"
"fmt"
"os"
"testing"
"time"

Expand Down Expand Up @@ -182,3 +184,46 @@ func equalEntries(x, y Entries) bool {
}
return true
}

type mergeTestCase struct {
sensorFile string
egvFile string
nsFile string
}

func TestMergeGlucoseEntries(t *testing.T) {
cases := []mergeTestCase{
{"sensor", "egv", "nightscout"},
}
for _, c := range cases {
t.Run(c.nsFile, func(t *testing.T) {
mergeTest(t, c)
})
}
}

func mergeTest(t *testing.T, c mergeTestCase) {
s := decodeRecords(fmt.Sprintf("%s/%s.json", testDataDir, c.sensorFile))
e := decodeRecords(fmt.Sprintf("%s/%s.json", testDataDir, c.egvFile))
m := MergeHistory(s, e)
ns := NightscoutEntries(m)
eq, msg := compareDataToJSON(ns, fmt.Sprintf("%s/%s.json", testDataDir, c.nsFile))
if !eq {
t.Errorf("JSON is different:\n%s\n", msg)
}
}

func decodeRecords(file string) Records {
f, err := os.Open(file)
if err != nil {
panic(err)
}
defer f.Close()
d := json.NewDecoder(f)
var records Records
err = d.Decode(&records)
if err != nil {
panic(err)
}
return records
}
10 changes: 4 additions & 6 deletions page_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,14 @@ import (
"testing"
)

const testDataDir = "testdata"

type testCase struct {
type pageTestCase struct {
pageType PageType
pageNumber int
alternative int
}

func TestPage(t *testing.T) {
cases := []testCase{
cases := []pageTestCase{
{ManufacturingData, 0, 0},
{SensorData, 469, 0},
{EGVData, 312, 0},
Expand All @@ -33,7 +31,7 @@ func TestPage(t *testing.T) {
}
}

func pageTest(t *testing.T, c testCase) {
func pageTest(t *testing.T, c pageTestCase) {
testFile := testFileName(c)
f, err := os.Open(testFile + ".data")
if err != nil {
Expand Down Expand Up @@ -65,7 +63,7 @@ func pageTest(t *testing.T, c testCase) {
checkRecords(t, decoded, testFile+".json")
}

func testFileName(c testCase) string {
func testFileName(c pageTestCase) string {
s := fmt.Sprintf("%s/%d.%d", testDataDir, c.pageType, c.pageNumber)
if c.alternative != 0 {
s += fmt.Sprintf("-%d", c.alternative)
Expand Down
278 changes: 278 additions & 0 deletions testdata/egv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
[
{
"Timestamp": {
"SystemTime": "2018-09-20T01:40:08-04:00",
"DisplayTime": "2018-09-19T18:38:22-04:00"
},
"EGV": {
"Glucose": 118,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:35:08-04:00",
"DisplayTime": "2018-09-19T18:33:22-04:00"
},
"EGV": {
"Glucose": 119,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:30:08-04:00",
"DisplayTime": "2018-09-19T18:28:22-04:00"
},
"EGV": {
"Glucose": 118,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:25:08-04:00",
"DisplayTime": "2018-09-19T18:23:22-04:00"
},
"EGV": {
"Glucose": 117,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:20:08-04:00",
"DisplayTime": "2018-09-19T18:18:22-04:00"
},
"EGV": {
"Glucose": 121,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:15:08-04:00",
"DisplayTime": "2018-09-19T18:13:22-04:00"
},
"EGV": {
"Glucose": 121,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:10:08-04:00",
"DisplayTime": "2018-09-19T17:07:53-04:00"
},
"EGV": {
"Glucose": 118,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:05:08-04:00",
"DisplayTime": "2018-09-19T17:02:53-04:00"
},
"EGV": {
"Glucose": 114,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T01:00:08-04:00",
"DisplayTime": "2018-09-19T17:59:04-04:00"
},
"EGV": {
"Glucose": 108,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:55:08-04:00",
"DisplayTime": "2018-09-19T17:54:04-04:00"
},
"EGV": {
"Glucose": 107,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:50:08-04:00",
"DisplayTime": "2018-09-19T17:49:04-04:00"
},
"EGV": {
"Glucose": 107,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:40:08-04:00",
"DisplayTime": "2018-09-19T17:39:04-04:00"
},
"EGV": {
"Glucose": 105,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:35:08-04:00",
"DisplayTime": "2018-09-19T17:34:04-04:00"
},
"EGV": {
"Glucose": 99,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:30:08-04:00",
"DisplayTime": "2018-09-19T17:29:04-04:00"
},
"EGV": {
"Glucose": 94,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:25:08-04:00",
"DisplayTime": "2018-09-19T17:24:04-04:00"
},
"EGV": {
"Glucose": 92,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:20:09-04:00",
"DisplayTime": "2018-09-19T17:19:04-04:00"
},
"EGV": {
"Glucose": 94,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:15:08-04:00",
"DisplayTime": "2018-09-19T17:14:04-04:00"
},
"EGV": {
"Glucose": 93,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:10:08-04:00",
"DisplayTime": "2018-09-19T17:09:04-04:00"
},
"EGV": {
"Glucose": 93,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:05:08-04:00",
"DisplayTime": "2018-09-19T17:04:04-04:00"
},
"EGV": {
"Glucose": 94,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-20T00:00:08-04:00",
"DisplayTime": "2018-09-19T16:59:04-04:00"
},
"EGV": {
"Glucose": 94,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-19T23:55:09-04:00",
"DisplayTime": "2018-09-19T16:54:04-04:00"
},
"EGV": {
"Glucose": 95,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-19T23:50:09-04:00",
"DisplayTime": "2018-09-19T16:49:04-04:00"
},
"EGV": {
"Glucose": 95,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
},
{
"Timestamp": {
"SystemTime": "2018-09-19T23:45:09-04:00",
"DisplayTime": "2018-09-19T16:44:04-04:00"
},
"EGV": {
"Glucose": 94,
"DisplayOnly": false,
"Noise": 1,
"Trend": 4
}
}
]
Loading

0 comments on commit 894b6d5

Please sign in to comment.