Example #1
0
    def testAppendMixedStringsDataset(self):
        strings_array = ak.array(
            ['string {}'.format(num) for num in list(range(0, 25))])
        strings_array.save('{}/append-multi-type-test'.format(
            IOTest.io_test_dir),
                           dataset='m_strings')
        m_floats = ak.array([x / 10.0 for x in range(0, 10)])
        m_ints = ak.array(list(range(0, 10)))
        ak.save_all({
            'm_floats': m_floats,
            'm_ints': m_ints
        },
                    '{}/append-multi-type-test'.format(IOTest.io_test_dir),
                    mode='append')
        r_mixed = ak.load_all('{}/append-multi-type-test'.format(
            IOTest.io_test_dir))

        self.assertIsNotNone(r_mixed['m_floats'])
        self.assertIsNotNone(r_mixed['m_ints'])

        r_floats = ak.sort(
            ak.load('{}/append-multi-type-test'.format(IOTest.io_test_dir),
                    dataset='m_floats'))
        r_ints = ak.sort(
            ak.load('{}/append-multi-type-test'.format(IOTest.io_test_dir),
                    dataset='m_ints'))
        self.assertTrue((m_floats == r_floats).all())
        self.assertTrue((m_ints == r_ints).all())

        strings = strings_array.to_ndarray()
        strings.sort()
        r_strings = r_mixed['m_strings'].to_ndarray()
        r_strings.sort()

        self.assertTrue((strings == r_strings).all())
Example #2
0
    def testErrorHandling(self):

        # Test RuntimeError from bool NotImplementedError
        akbools = ak.randint(0, 1, 1000, dtype=ak.bool)
        bools = ak.randint(0, 1, 1000, dtype=bool)

        for algo in ak.SortingAlgorithm:
            with self.assertRaises(ValueError) as cm:
                ak.sort(akbools, algo)
            self.assertEqual(
                'ak.sort supports int64, uint64, or float64, not bool',
                cm.exception.args[0])

            with self.assertRaises(ValueError) as cm:
                ak.sort(bools, algo)
            self.assertEqual(
                'ak.sort supports int64, uint64, or float64, not bool',
                cm.exception.args[0])

            # Test TypeError from sort attempt on non-pdarray
            with self.assertRaises(TypeError):
                ak.sort(list(range(0, 10)), algo)

            # Test attempt to sort Strings object, which is unsupported
            with self.assertRaises(TypeError):
                ak.sort(
                    ak.array(['String {}'.format(i) for i in range(0, 10)]),
                    algo)
Example #3
0
    def testBitBoundary(self):

        # test 17-bit sort
        L = -2**15
        U = 2**16
        a = ak.randint(L, U, 100)
        for algo in ak.SortingAlgorithm:
            assert ak.is_sorted(ak.sort(a, algo))
Example #4
0
 def test_compare_sort(self):
     # create np version
     a = np.arange(N)
     a = a[::-1]
     a = np.sort(a)
     # create ak version
     b = ak.arange(N)
     b = b[::-1]
     b = ak.sort(b)
     self.assertEqual(a.all(), b.to_ndarray().all())
Example #5
0
def check_sort(N):
    # create np version
    a = np.arange(N)
    a = a[::-1]
    a = np.sort(a)
    # create ak version
    b = ak.arange(N)
    b = b[::-1]
    b = ak.sort(b)
    # print(a,b)
    c = a == b.to_ndarray()
    # print(type(c),c)
    return pass_fail(c.all())
Example #6
0
 def testErrorHandling(self):
     
     # Test RuntimeError from bool NotImplementedError
     bools = ak.randint(0, 1, 1000, dtype=ak.bool)   
  
     with self.assertRaises(RuntimeError) as cm:
         ak.sort(bools)
     self.assertEqual('Error: sortMsg: bool not implemented', 
                      cm.exception.args[0])
     
     # Test TypeError from sort attempt on non-pdarray
     with self.assertRaises(TypeError):
         ak.sort(list(range(0,10)))  
             
     # Test attempt to sort Strings object, which is unsupported
     with self.assertRaises(TypeError):
         ak.sort(ak.array(['String {}'.format(i) for i in range(0,10)]))
Example #7
0
    def testBitBoundaryHardcode(self):

        # test hardcoded 16/17-bit boundaries with and without negative values
        a = ak.array([1, -1, 32767])  # 16 bit
        b = ak.array([1, 0, 32768])  # 16 bit
        c = ak.array([1, -1, 32768])  # 17 bit
        for algo in ak.SortingAlgorithm:
            assert ak.is_sorted(ak.sort(a, algo))
            assert ak.is_sorted(ak.sort(b, algo))
            assert ak.is_sorted(ak.sort(c, algo))

        # test hardcoded 64-bit boundaries with and without negative values
        d = ak.array([1, -1, 2**63 - 1])
        e = ak.array([1, 0, 2**63 - 1])
        f = ak.array([1, -2**63, 2**63 - 1])
        for algo in ak.SortingAlgorithm:
            assert ak.is_sorted(ak.sort(d, algo))
            assert ak.is_sorted(ak.sort(e, algo))
            assert ak.is_sorted(ak.sort(f, algo))
Example #8
0
 def testSort(self):
     pda = ak.randint(0, 100, 100)
     for algo in ak.SortingAlgorithm:
         spda = ak.sort(pda, algo)
         maxIndex = spda.argmax()
         self.assertTrue(maxIndex > 0)
Example #9
0
 def testSort(self):
     pda = ak.randint(0, 100, 100)
     spda = ak.sort(pda)
     maxIndex = spda.argmax()
     self.assertTrue(maxIndex > 0)