コード例 #1
0
    def test_read_columncollection_parameters(self):
        input_data = [['object', 'parameter_name1', 'parameter_name2'],
                      ['obj1', 0, 1], ['obj2', 2, 3]]
        self.empty_data.update({
            'object_classes': ['object'],
            'objects': [('object', 'obj1'), ('object', 'obj2')],
            'object_parameters': [('object', 'parameter_name1'),
                                  ('object', 'parameter_name2')],
            'object_parameter_values':
            [('object', 'obj1', 'parameter_name1', 0),
             ('object', 'obj1', 'parameter_name2', 1),
             ('object', 'obj2', 'parameter_name1', 2),
             ('object', 'obj2', 'parameter_name2', 3)]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'ObjectClass',
            'name': {
                'map_type': 'column_name',
                'value_reference': 0
            },
            'object': 0,
            'parameters': [1, 2]
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #2
0
    def test_read_flat_file(self):
        input_data = [['object_class', 'object', 'parameter', 'value'],
                      ['oc1', 'obj1', 'parameter_name1', 1],
                      ['oc2', 'obj2', 'parameter_name2', 2]]
        self.empty_data.update({
            'object_classes': ['oc1', 'oc2'],
            'objects': [('oc1', 'obj1'), ('oc2', 'obj2')],
            'object_parameters': [('oc1', 'parameter_name1'),
                                  ('oc2', 'parameter_name2')],
            'object_parameter_values': [('oc1', 'obj1', 'parameter_name1', 1),
                                        ('oc2', 'obj2', 'parameter_name2', 2)]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'ObjectClass',
            'name': 0,
            'object': 1,
            'parameters': {
                'map_type': 'parameter',
                'name': 2,
                'value': 3
            }
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #3
0
    def test_read_relationships_and_save_objects(self):
        input_data = [['unit', 'node'], ['u1', 'n1'], ['u2', 'n2']]
        self.empty_data.update({
            'relationship_classes': [('unit__node', ('unit', 'node'))],
            'relationships': [('unit__node', ('u1', 'n1')),
                              ('unit__node', ('u2', 'n2'))],
            'object_classes': ['unit', 'node'],
            'objects': [('unit', 'u1'), ('node', 'n1'), ('unit', 'u2'),
                        ('node', 'n2')]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'RelationshipClass',
            'name': 'unit__node',
            'object_classes': [0, 1],
            'objects': [0, 1],
            'import_objects': True
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #4
0
    def test_read_pivoted_parameters_from_data_with_skipped_column(self):
        input_data = [['object', 'parameter_name1', 'parameter_name2'],
                      ['obj1', 0, 1], ['obj2', 2, 3]]
        self.empty_data.update({
            'object_classes': ['object'],
            'objects': [('object', 'obj1'), ('object', 'obj2')],
            'object_parameters': [('object', 'parameter_name1')],
            'object_parameter_values':
            [('object', 'obj1', 'parameter_name1', 0),
             ('object', 'obj2', 'parameter_name1', 2)]
        })

        data = iter(input_data)
        #data_header = next(data)
        num_cols = len(input_data[0])

        mapping = {
            'map_type': 'ObjectClass',
            'name': 'object',
            'object': 0,
            'skip_columns': [2],
            'parameters': {
                'map_type': 'parameter',
                'name': {
                    'map_type': 'row',
                    'value_reference': 0
                }
            }
        }  #-1 to read pivot from header

        out, errors = read_with_mapping(data, mapping, num_cols)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #5
0
    def test_read_parameter_header_with_only_one_parameter(self):
        input_data = [['object', 'parameter_name1'], ['obj1', 0], ['obj2', 2]]
        self.empty_data.update({
            'object_classes': ['object'],
            'objects': [('object', 'obj1'), ('object', 'obj2')],
            'object_parameters': [('object', 'parameter_name1')],
            'object_parameter_values':
            [('object', 'obj1', 'parameter_name1', 0),
             ('object', 'obj2', 'parameter_name1', 2)]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'ObjectClass',
            'name': 'object',
            'object': 0,
            'parameters': {
                'map_type': 'parameter',
                'name': {
                    'map_type': 'row',
                    'value_reference': -1
                }
            }
        }  #-1 to read pivot from header

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #6
0
    def test_read_relationships_with_parameters(self):
        input_data = [['unit', 'node', 'rel_parameter'], ['u1', 'n1', 0],
                      ['u1', 'n2', 1]]
        self.empty_data.update({
            'relationship_classes': [('unit__node', ('unit', 'node'))],
            'relationships': [('unit__node', ('u1', 'n1')),
                              ('unit__node', ('u1', 'n2'))],
            'relationship_parameters': [('unit__node', 'rel_parameter')],
            'relationship_parameter_values':
            [('unit__node', ('u1', 'n1'), 'rel_parameter', 0),
             ('unit__node', ('u1', 'n2'), 'rel_parameter', 1)]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'RelationshipClass',
            'name': 'unit__node',
            'object_classes': [0, 1],
            'objects': [0, 1],
            'parameters': [2]
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #7
0
    def test_read_relationships_parameter_values_with_extra_dimensions(self):
        #FIXME: right now the read_with_mapping only keeps the value for
        #mappings with extra dimensions until the data spec is final.
        input_data = [['', 'a', 'b'], ['', 'c', 'd'], ['', 'e', 'f'],
                      [1, 2, 3], [2, 4, 5]]
        # original test
        #        self.empty_data.update({'relationship_classes': [('unit__node',('unit','node'))],
        #                                'relationship_parameters': [('unit__node', 'e'), ('unit__node', 'f')],
        #                                'relationships': [('unit__node',('a','c')),
        #                                                  ('unit__node',('b','d'))],
        #                                'relationship_parameter_values': [('unit__node',('a','c'), 'e', '[[1, 2], [2, 4]]'),
        #                                                                  ('unit__node',('b','d'), 'f', '[[1, 3], [2, 5]]')]
        #                                })

        self.empty_data.update({
            'relationship_classes': [('unit__node', ('unit', 'node'))],
            'relationship_parameters': [('unit__node', 'e'),
                                        ('unit__node', 'f')],
            'relationships': [('unit__node', ('a', 'c')),
                              ('unit__node', ('b', 'd'))],
            'relationship_parameter_values':
            [('unit__node', ('a', 'c'), 'e', '[2, 4]'),
             ('unit__node', ('b', 'd'), 'f', '[3, 5]')]
        })

        data = iter(input_data)
        data_header = []
        num_cols = 3

        mapping = {
            "map_type":
            "RelationshipClass",
            "name":
            'unit__node',
            "object_classes": ['unit', 'node'],
            "objects": [{
                'map_type': 'row',
                'value_reference': i
            } for i in range(2)],
            "parameters": {
                'map_type': 'parameter',
                'name': {
                    'map_type': 'row',
                    'value_reference': 2
                },
                'extra_dimensions': [0]
            }
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])
コード例 #8
0
    def test_read_flat_file_with_extra_value_dimensions(self):
        #FIXME: right now the read_with_mapping only keeps the value for
        #mappings with extra dimensions until the data spec is final.
        input_data = [['object', 'time', 'parameter_name1'], ['obj1', 't1', 1],
                      ['obj1', 't2', 2]]
        # orginal test data
        #        self.empty_data.update({'object_classes': ['object'],
        #                                'objects': [('object','obj1'), ('object','obj1')],
        #                                'object_parameters': [('object','parameter_name1')],
        #                                'object_parameter_values': [('object','obj1','parameter_name1','[["scenario1", "t1", 1], ["scenario1", "t2", 2]]')]})

        self.empty_data.update({
            'object_classes': ['object'],
            'objects': [('object', 'obj1'), ('object', 'obj1')],
            'object_parameters': [('object', 'parameter_name1')],
            'object_parameter_values':
            [('object', 'obj1', 'parameter_name1', '[1, 2]')]
        })

        data = iter(input_data)
        data_header = next(data)
        num_cols = len(data_header)

        mapping = {
            'map_type': 'ObjectClass',
            'name': 'object',
            'object': 0,
            'parameters': {
                'map_type': 'parameter_column_collection',
                'parameters': [2],
                'extra_dimensions': ['scenario1', 1]
            }
        }

        out, errors = read_with_mapping(data, mapping, num_cols, data_header)
        self.assertEqual(out, self.empty_data)
        self.assertEqual(errors, [])