def test_compact_with_random(self):
        data = np.random.randint(0, 10, 30, dtype=np.uint16)
        indices = np.arange(30, dtype=np.uint32)

        vec = SparseVector(data, indices, 30)
        vec.compact()

        zi = np.where(data == 0)
        expected = SparseVector(np.delete(data, zi), np.delete(indices, zi),
                                30)
        result = copy(vec)

        self.assertEqual(result, expected)
Esempio n. 2
0
    def read_set(pool, stream):
        """
        Resds a testing set from the specified CSV stream using the specified
        processing pool to improve I/O performance.

        :param pool: The processing pool to use.
        :param stream: The CSV stream to read from.
        :return: A set filled with some data to test with.
        """
        tests = []

        processor = partial(CsvIO.process_line, skip_class=True, skip_id=False)
        results = pool.map(processor, CsvIO.generate_lines(stream))

        for result in results:
            tests.append(
                Test(
                    result.id,
                    SparseVector(data=np.array(result.data,
                                               copy=False,
                                               dtype=np.uint16),
                                 indices=np.array(result.cols,
                                                  copy=False,
                                                  dtype=np.uint32),
                                 size=61189)))

        return TestingSet(tests)
    def test_compact_with_zero(self):
        vec = SparseVector(np.zeros(10, dtype=np.uint16),
                           np.arange(10, dtype=np.uint32), 10)
        vec.compact()

        expected = SparseVector.zero(10)
        result = copy(vec)

        self.assertEqual(result, expected)
    def test_venn_with_random(self):
        array_a = np.random.randint(0, 100, 30)
        array_b = np.random.randint(0, 100, 30)

        a = SparseVector.from_list(array_a)
        b = SparseVector.from_list(array_b)

        a_i = np.in1d(a.indices, b.indices)
        a_d = np.in1d(a.indices, np.setdiff1d(a.indices, a.indices[a_i]))

        expected0 = SparseVector(a.data[a_i], a.indices[a_i], a.size)
        expected1 = SparseVector(a.data[a_d], a.indices[a_d], a.size)

        result0, result1 = a.venn(b)

        self.assertEqual(result0, expected0)
        self.assertEqual(result1, expected1)
        self.assertEqual(result0.data.size + result1.data.size, a.data.size)
        self.assertEqual(result0.indices.size + result1.indices.size,
                         a.indices.size)