Beispiel #1
0
 def test_simple_trend(self):
     json = {
         'name':
         't',
         'rows':
         5,
         'columns': [
             {
                 'name': 'd',
                 'sequentialDate': {
                     'startDate': '2000-01-01',
                     'endDate': '2000-02-01'
                 }
             },
             {
                 'name': 'v',
                 'valueExpression': '10',
                 'trends': {
                     'dateColumn': 'd',
                     'daily': '0.1'
                 }
             },
         ]
     }
     t = Table(json)
     t.generate()
     c = t.get_columns()[1]
     self.assertEqual(c.values[0], 11.0)
     self.assertEqual(c.values[4], 15.0)
Beispiel #2
0
 def test_single_column(self):
     json = {
         'name': 't',
         'rows': 3,
         'columns': [{
             'name': 'm',
             'valueExpression': 'random()'
         }]
     }
     t = Table(json)
     t.generate()
     self.assertTrue(len(t.get_columns()) == 1, 'Only one column')
Beispiel #3
0
 def test_two_column(self):
     json = {
         'name':
         't',
         'rows':
         3,
         'columns': [
             {
                 'name': 'm1',
                 'valueExpression': 'random()'
             },
             {
                 'name': 'm2',
                 'valueExpression': 'random()'
             },
         ]
     }
     t = Table(json)
     t.generate()
     self.assertTrue(len(t.get_columns()) == 2, 'Two columns')
Beispiel #4
0
 def test_anomaly(self):
     json = {
         'name':
         't',
         'rows':
         5,
         'columns': [{
             'name': 'v',
             'valueExpression': '10'
         }, {
             'name':
             'd',
             'valueExpression':
             '100',
             'anomalies': [{
                 'condition': 'get_value("v") == 10',
                 'value': 'get_value() + 100'
             }]
         }]
     }
     t = Table(json)
     t.generate()
     c = t.get_columns()[1]
     self.assertEqual(c.values[0], 200)
Beispiel #5
0
 def test_date_multi_column(self):
     json = {
         'name':
         'multidate',
         'rows':
         90,
         'columns': [
             {
                 'name': 'randomStuff',
                 'valueExpression': 'random()'
             },
             {
                 'name': 'unused',
                 'dateMultiColumn': {
                     'startDate':
                     '2020-01-01',
                     'endDate':
                     '2020-12-31',
                     'columns': [{
                         'name': 'Year',
                         'type': 'year'
                     }, {
                         'name': 'Month',
                         'type': 'month'
                     }, {
                         'name': 'Day',
                         'type': 'day'
                     }, {
                         'name': 'Date',
                         'type': 'date'
                     }]
                 }
             },
         ]
     }
     t = Table(json)
     t.generate()
     cols = t.get_columns()
     self.assertEqual(len(cols), 5)
     self.assertEqual(cols[1].values[0], 2020)
     t.write(self.output_dir)
Beispiel #6
0
 def test_write_csv(self):
     json = {
         'name':
         't',
         'rows':
         3,
         'columns': [
             {
                 'name': 'm1',
                 'valueExpression': 'random()'
             },
             {
                 'name': 'm2',
                 'valueExpression': 'random()'
             },
         ]
     }
     t = Table(json)
     t.generate()
     # TODO: need some asserts
     t.write(self.output_dir)
Beispiel #7
0
 def test_column_reference(self):
     json = {
         'name':
         't',
         'rows':
         3,
         'columns': [
             {
                 'name': 'm1',
                 'valueExpression': 'random()'
             },
             {
                 'name': 'm2',
                 'valueExpression': 'column("m1") * 100'
             },
         ]
     }
     t = Table(json)
     t.generate()
     self.assertTrue(
         t.get_value('m2') == t.get_value('m1') * 100,
         'Simple column ref')  # noqa ES501
Beispiel #8
0
 def __init__(self, json):
     self.name = json['name']
     self.output_location = json['output_location']
     self.seed = json.get('seed')
     random.seed(self.seed)
     self.tables = [Table(t, self.get_value) for t in json['tables']]