source: consulta_publica/vsm/unit_tests/tests_structarr.py @ 7095598

baseconstituyenteestudiantesgeneralplan_patriasala
Last change on this file since 7095598 was 0ff122b, checked in by rudmanmrrod <rudman22@…>, 7 años ago

Agregado módulo de gestión de perfiles de procesamiento, incorporado el módulo de visualización de modelado de tópicos

  • Propiedad mode establecida a 100644
File size: 3.0 KB
Línea 
1import unittest2 as unittest
2import numpy as np
3
4from vsm import *
5from vsm.structarr import *
6
7class TestCore(unittest.TestCase):
8
9    def test_arr_add_field(self):
10
11        arr = np.array([(1, '1'), (2, '2'), (3, '3')],
12                   dtype=[('i', np.int), ('c', '|S1')])
13        new_arr = np.array([(1, '1', 0), (2, '2', 0), (3, '3', 0)],
14                       dtype=[('i', np.int), ('c', '|S1'), ('new', np.int)])
15
16        new_field = 'new'
17        vals = np.zeros(3, dtype=np.int)
18
19        test_arr = arr_add_field(arr, new_field, vals)
20
21        self.assertTrue((new_arr==test_arr).all())
22        self.assertTrue(new_arr.dtype==test_arr.dtype)
23
24    def test_enum_matrix(self):
25
26        arr = np.array([[6,3,7], [2,0,4]])
27        em1 = enum_matrix(arr)
28        em2 = enum_matrix(arr, indices=[10,20,30], field_name='tens')
29
30        self.assertTrue((em1 == np.array([[(2,7), (0,6), (1, 3)],[(2,4), (0,2), (1,0)]],
31                        dtype=[('i', '<i8'), ('value', '<i8')])).all())
32        self.assertTrue((em2 == np.array([[(30,7), (10,6), (20, 3)],[(30,4), (10,2), (20,0)]],
33                        dtype=[('tens', '<i8'), ('value', '<i8')])).all())
34       
35
36
37    def test_enum_sort(self):
38       
39        arr = np.array([7,3,1,8,2])
40        sorted_arr = enum_sort(arr)
41        sorted_arr1 = enum_sort(arr, indices=[10,20,30,40,50])
42
43        self.assertTrue((sorted_arr == 
44            np.array([(3, 8), (0, 7), (1, 3), (4, 2), (2, 1)],
45            dtype=[('i', '<i8'), ('value', '<i8')])).all())
46
47        self.assertTrue((sorted_arr1 ==
48            np.array([(40, 8), (10, 7), (20, 3), (50, 2), (30, 1)], 
49                  dtype=[('i', '<i8'), ('value', '<i8')])).all())
50
51
52    def test_enum_array(self):
53       
54        arr1 = np.array([7,3,1,8,2])
55        ea1 = enum_array(arr1)
56        arr2 = np.array([6,3,7,2,0,4])
57        ea2 = enum_array(arr2)
58
59        self.assertTrue((ea1 == 
60            np.array([(0,7), (1,3), (2,1), (3,8), (4,2)],
61                    dtype=[('i', '<i8'), ('value', '<i8')])).all())
62        self.assertTrue((ea2 ==
63            np.array([(0,6), (1,3), (2,7), (3,2), (4,0), (5,4)],
64                    dtype=[('i', '<i8'), ('value', '<i8')])).all())
65       
66
67    def test_zip_arr(self):
68       
69        arr1 = np.array([[2,4], [6,8]])
70        arr2 = np.array([[1,3], [5,7]])
71
72        zipped = zip_arr(arr1, arr2, field_names=['even', 'odd'])
73        self.assertTrue((zipped == np.array([[(2,1), (4,3)], [(6,5), (8,7)]],
74                        dtype=[('even', '<i8'), ('odd', '<i8')])).all())
75
76
77    def test_map_strarr(self):
78
79        arr = np.array([(0, 1.), (1, 2.)], 
80                   dtype=[('i', 'i4'), ('v', 'f4')])
81        m = ['foo', 'bar']
82        arr = map_strarr(arr, m, 'i', new_k='str')
83
84        self.assertTrue((arr['str'] == np.array(m, 
85                        dtype=np.array(m).dtype)).all())
86        self.assertTrue((arr['v'] == np.array([1., 2.], dtype='f4')).all())
87
88
89suite = unittest.TestLoader().loadTestsFromTestCase(TestCore)
90unittest.TextTestRunner(verbosity=2).run(suite)
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.