-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdataset_reader_test.py
78 lines (56 loc) · 2.86 KB
/
dataset_reader_test.py
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
#!/bin/python3
import pytest
import os
from dataset_reader import getServicesFromDataset, getSdsFromService, getReqsFromService
from dataset_generator import DatasetGenerator
# TEST FOR getServicesFromDataset FUNCTION
# create parameters list
getServicesFromDatasetParams = []
setting = [{'SETTING_NAME': 'G0.0.0', 'SD_P': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'REQS_P': {'POLICY': [0.5, 0.5], 'REQUIREMENTS': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'CARDINALITY': [0.5, 0.5]}, 'CH_P': {'TYPE': [0.5, 0.5], 'CHANGE': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333]}}, {'SETTING_NAME': 'G0.0.1', 'SD_P': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'REQS_P': {'POLICY': [0.5, 0.5], 'REQUIREMENTS': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'CARDINALITY': [0.5, 0.5]}, 'CH_P': {'TYPE': [0.6666666666666666, 0.33333333333333337], 'CHANGE': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333]}}, {'SETTING_NAME': 'G0.0.2', 'SD_P': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'REQS_P': {'POLICY': [0.5, 0.5], 'REQUIREMENTS': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333], 'CARDINALITY': [0.5, 0.5]}, 'CH_P': {'TYPE': [0.3333333333333333, 0.6666666666666667], 'CHANGE': [0.3333333333333333, 0.3333333333333333, 0.3333333333333333]}}]
for s in setting:
DatasetGenerator(s).generate(10, 10, f".test_dataset{s['SETTING_NAME']}.csv")
getServicesFromDatasetParams.append(f".test_dataset{s['SETTING_NAME']}.csv")
# test function
@pytest.mark.parametrize("f", getServicesFromDatasetParams)
def test_getServicesFromDataset(f):
services = getServicesFromDataset(f)
assert len(services) > 0
for n in services:
assert isinstance(n, dict)
# TEST FOR getSdsFromService FUNCTION
# create parameters list
getSdsFromServiceParams = []
sdsNum = 5
sdsVal = 0
for i in range(5):
service = {}
for j in range(sdsNum):
service[f'sd{j}'] = sdsVal
getSdsFromServiceParams.append(service)
# test function
@pytest.mark.parametrize("service", getSdsFromServiceParams)
def test_getSdsFromService(service):
sds = getSdsFromService(service)
assert len(sds) == sdsNum
for t in sds:
assert t == sdsVal
# TEST FOR getReqsFromService FUNCTION
# create parameters list
getReqsFromServiceParams = []
reqsNum = 5
reqsVal = [0, 2]
cardVal = 1
for i in range(5):
service = {}
for j in range(sdsNum):
service[f'req{j}'] = (reqsVal, cardVal)
getReqsFromServiceParams.append(service)
# test function
@pytest.mark.parametrize("service", getReqsFromServiceParams)
def test_getReqsFromService(service):
sds = getReqsFromService(service)
assert len(sds) == reqsNum
for t in sds:
assert t[0][0] == reqsVal[0]
assert t[0][1] == reqsVal[1]
assert t[1] == cardVal