Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
'''
Created on 17/07/2014
@author: MMPE
'''
import os
import unittest
from datetime import datetime
from wetb.hawc2.htcfile import HTCFile
os.chdir(os.path.relpath(".", __file__))
import numpy as np
class Test(unittest.TestCase):
def setUp(self):
unittest.TestCase.setUp(self)
self.testfilepath = "tests/test_files/"
def test_htc_file(self):
with open(self.testfilepath + 'test.htc') as fid:
orglines = fid.readlines()
htcfile = HTCFile(self.testfilepath + "test.htc")
newlines = str(htcfile).split("\n")
#htcfile.save(self.testfilepath + 'tmp.htc')
#with open(self.testfilepath + 'tmp.htc') as fid:
# newlines = fid.readlines()
for i, (org, new) in enumerate(zip(orglines, newlines), 1):
fmt = lambda x : x.strip().replace("\t", " ").replace(" ", " ").replace(" ", " ").replace(" ", " ").replace(" ", " ")
if fmt(org) != fmt(new):
print ("----------%d-------------" % i)
print (fmt(org))
print (fmt(new))
self.assertEqual(fmt(org), fmt(new))
break
print ()
assert len(orglines) == len(newlines)
def test_htc_file_get(self):
htcfile = HTCFile(self.testfilepath + "test.htc")
self.assertEqual(htcfile['simulation']['logfile'][0], './logfiles/dlc12_iec61400-1ed3/dlc12_wsp10_wdir000_s1004.log')
self.assertEqual(htcfile['simulation/logfile'], './logfiles/dlc12_iec61400-1ed3/dlc12_wsp10_wdir000_s1004.log')
self.assertEqual(htcfile.simulation.logfile, './logfiles/dlc12_iec61400-1ed3/dlc12_wsp10_wdir000_s1004.log')
self.assertEqual(float(htcfile.simulation.newmark.deltat), 0.02)
self.assertEqual(htcfile.simulation.newmark, "deltat\t 0.02;\n")
s = """time_stop\t 100;\nsolvertype\t 1"""
self.assertEqual(str(htcfile.simulation)[:len(s)], s)
def test_htc_file_set(self):
htcfile = HTCFile(self.testfilepath + "test.htc")
time_stop = int(htcfile.simulation.time_stop)
htcfile.simulation.time_stop = time_stop * 2
self.assertEqual(int(htcfile.simulation.time_stop), 2 * time_stop)
def test_htc_file_set_key(self):
htcfile = HTCFile(self.testfilepath + "test.htc")
htcfile.simulation.name = "value"
self.assertEqual(htcfile.simulation.name, "value")
def test_htc_file_del_key(self):
htcfile = HTCFile(self.testfilepath + "test.htc")
del htcfile.simulation.logfile
self.assertTrue("logfile" not in str(htcfile.simulation))
try:
del htcfile.hydro.water_properties.water_kinematics_dll
except KeyError:
pass
def test_htcfile_setname(self):
htcfile = HTCFile()
htcfile.set_name("mytest")
self.assertEqual(htcfile.filename, 'mytest.htc')
def test_add_section(self):
htcfile = HTCFile()
htcfile.wind.add_section('mann')
htcfile.wind.mann.create_turb_parameters = ("29.4 1.0 3.9 1004 1.0", "L, alfaeps, gamma, seed, highfrq compensation")
self.assertTrue(htcfile.wind.mann.create_turb_parameters.startswith('29.4'))
def test_add_mann(self):
htcfile = HTCFile()
htcfile.add_mann_turbulence(30.1, 1.1, 3.3, 102, False)
s = """create_turb_parameters\t30.10 1.100 3.30 102 0;\tL, alfaeps, gamma, seed, highfrq compensation
filename_u\t./turb/turb_wsp10_s0102u.bin;
filename_v\t./turb/turb_wsp10_s0102v.bin;
filename_w\t./turb/turb_wsp10_s0102w.bin;
box_dim_u\t4096 1.4652;
box_dim_v\t32 3.2258;
box_dim_w\t32 3.2258;
std_scaling\t1.000000 0.800000 0.500000;"""
for a, b in zip(s.split("\n"), str(htcfile.wind.mann).split("\n")):
self.assertEqual(a, b)
def test_sensors(self):
htcfile = HTCFile()
htcfile.set_name("test")
htcfile.add_sensor('wind free_wind 1 0 0 -30')
s = """filename\t./res/test;
general time;
wind free_wind 1 0 0 -30;"""
for a, b in zip(s.split("\n"), str(htcfile.output).split("\n")):
self.assertEqual(a, b)
#print (htcfile)
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()