def test_mapper1_case_2(self): arc_map = k2host.IntArray1(torch.IntTensor([2, 0, 3])) mapper = k2host.AuxLabels1Mapper(self.aux_labels_in, arc_map) aux_size = k2host.IntArray2Size() mapper.get_sizes(aux_size) labels_out = k2host.AuxLabels.create_array_with_size(aux_size) mapper.get_output(labels_out) self.assertEqual(aux_size.size1, 3) self.assertEqual(aux_size.size2, 5) expected_indexes = torch.IntTensor([0, 3, 4, 5]) expected_data = torch.IntTensor([4, 5, 6, 1, 7]) self.assertTrue(torch.equal(labels_out.indexes, expected_indexes)) self.assertTrue(torch.equal(labels_out.data, expected_data))
def test_int_array1(self): data = torch.arange(10).to(torch.int32) array = k2host.IntArray1(data) self.assertFalse(array.empty()) self.assertIsInstance(array, k2host.IntArray1) self.assertEqual(data.numel(), array.size) self.assertEqual(array.data[9], 9) # the underlying memory is shared between k2host and torch; # so change one will change another data[0] = 100 self.assertEqual(array.data[0], 100) self.assertEqual(array.get_data(0), 100) del data # the array in k2host is still accessible self.assertEqual(array.data[0], 100) self.assertEqual(array.get_data(0), 100)