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())
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)
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))
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())
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())
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)]))
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))
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)
def testSort(self): pda = ak.randint(0, 100, 100) spda = ak.sort(pda) maxIndex = spda.argmax() self.assertTrue(maxIndex > 0)