Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@ build/*
*.o
test_priv
test_priv/*
**/__pycache__
**/__pycache__
coverage.xml
.coverage
htmlcov
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Debug tests",
"type": "python",
"request": "launch",
"program": "nose2 -v",
"console": "integratedTerminal"
}
]
}
9 changes: 7 additions & 2 deletions repgen/data/value.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import pytz,datetime,sys
from inspect import isfunction
from inspect import isclass, isfunction
import operator
# types
string_types = ("".__class__,u"".__class__)
number_types = (int,float,complex)
array_type = ([].__class__,().__class__)

class Value:
shared = {
Expand Down Expand Up @@ -67,14 +69,17 @@ def __init__( self, *args, **kwargs ):
elif self.dbtype.upper() == "GENTS":
current_t = self.start
end_t = self.end
if isinstance(self.value, array_type):
self.values = self.value
return
while current_t <= end_t:
if isinstance(self.value, number_types):
self.values.append( ( current_t.astimezone(self.tz),self.value,0 ) )
elif isinstance(self.value, Value ):
self.value = self.value.value
self.values.append( ( current_t.astimezone(self.tz),self.value,0 ) )
elif isfunction(self.value):
self.values.append( ( current_t.astimezone(self.tz),self.value(),0 ) )
self.values.append( ( current_t.astimezone(self.tz),self.value(),0 ) )

current_t = current_t + self.interval

Expand Down
1 change: 1 addition & 0 deletions tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . dataset import Dataset,Result
34 changes: 34 additions & 0 deletions tests/dataset.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import datetime
# simple timeseries data set to load in from disk
class Dataset:


def __init__(self, set_name):
self.values = []
self.start = None
self.end = None
self.index = 0
with open("tests/datasets/Set_%s.csv"%set_name,"r") as results:
for line in results.readlines():
date,val,qual = line.strip().split(",")
_d = datetime.datetime.fromisoformat(date)
if self.start == None:
self.start = _d
self.values.append( (_d,float(val),int(qual)))
self.end = _d

def values_all(self):
self.index = self.index + 1
return self.values[self.index-1]


def values_only(self):
self.index = self.index + 1
return self.values[self.index-1][1]

class Result:
def __init__(self, result_set_name):
self.values = []
with open("tests/datasets/Result_%s.res" %result_set_name,"r") as results:
for value in results.readlines():
self.values.append( float(value) )
8 changes: 8 additions & 0 deletions tests/datasets/Result_SimpleStageTimes2.res
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
2
4
6
8
10
12
14
16
8 changes: 8 additions & 0 deletions tests/datasets/Set_SimpleStage.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
2021-01-01T00:00:00+00:00,1,0
2021-01-01T00:15:00+00:00,2,0
2021-01-01T00:30:00+00:00,3,0
2021-01-01T00:45:00+00:00,4,0
2021-01-01T01:00:00+00:00,5,0
2021-01-01T01:15:00+00:00,6,0
2021-01-01T01:30:00+00:00,7,0
2021-01-01T01:45:00+00:00,8,0
32 changes: 31 additions & 1 deletion tests/test_value.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import datetime
sys.path.append("../")


from . dataset import Dataset,Result
from repgen.data import Value
from repgen.util import TZ

Expand Down Expand Up @@ -34,3 +34,33 @@ def data():
assert v.values[3][1] == 3
assert v.values[4][1] == 4
assert v.values[8][1] == 8


def test_simple_sum():
v1 = Value(1)
v2 = Value(2)
v3 = v1+v2
assert v3.value == 3

def test_multiply():
stage = Dataset("SimpleStage")
assert stage.start != None
assert stage.end != None
assert len(stage.values) > 0

def data():
data.index += 1
return stage.values[data.index-1][1]
data.index = 0
data.stage = stage

v1 = Value(dbtype="GENTS", value = data, tz="UTC",start=stage.start,end=stage.end, interval = datetime.timedelta(minutes=15), picture="%0.02f")
assert len(v1.values) > 0

v2 = v1*2

result = Result("SimpleStageTimes2")
assert len(v2.values) > 0

for i in range(len(v2.values)):
assert int(v2.values[i][1]) == int(result.values[i])
3 changes: 3 additions & 0 deletions unittest.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[coverage]
always-on = True
coverage = repgen