From fc6b3d482ae3e071645188178009838d714e437b Mon Sep 17 00:00:00 2001 From: Jan Kieseler Date: Wed, 6 Aug 2025 08:50:34 +0200 Subject: [PATCH] Add test for int32 row splits --- src/djcdata/SimpleArray.py | 6 +++--- test/TestSimpleArray.py | 23 +++++++++++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/djcdata/SimpleArray.py b/src/djcdata/SimpleArray.py index cac3baa..ee21936 100644 --- a/src/djcdata/SimpleArray.py +++ b/src/djcdata/SimpleArray.py @@ -68,10 +68,10 @@ def createFromNumpy(self, nparr, nprs=np.array([],dtype='int64')): name = self.name() fnames = self.featureNames() self._setDtype(str(nparr.dtype)) - if nprs.dtype == 'int32': - self.sa.createFromNumpy(nparr, nprs.as_type('int64')) + if nprs.dtype == np.dtype('int32'): + self.sa.createFromNumpy(nparr, nprs.astype('int64')) else: - self.sa.createFromNumpy(nparr, nprs) + self.sa.createFromNumpy(nparr, nprs) self.setName(name) self.setFeatureNames(fnames) diff --git a/test/TestSimpleArray.py b/test/TestSimpleArray.py index 99fea83..81819dd 100644 --- a/test/TestSimpleArray.py +++ b/test/TestSimpleArray.py @@ -51,18 +51,33 @@ def test_transferToNumpyInt(self): def test_createFromNumpyInt(self): print('TestSimpleArray: createFromNumpyInt') - + arr,rs = self.createNumpy('int32') - + a = SimpleArray(dtype='int32') a.createFromNumpy(arr,rs) - + narr, nrs = a.copyToNumpy() nrs=nrs[:,0] - + diff = np.max(np.abs(narr-arr)) diff += np.max(np.abs(nrs-rs)) self.assertTrue(diff< 0.000001) + + def test_createFromNumpy_rowsplits_int32(self): + print('TestSimpleArray: createFromNumpy_rowsplits_int32') + arr = np.array(np.random.rand(500,3,5,6)*100., dtype='float32') + rs = np.array([0,100,230,500], dtype='int32') + + a = SimpleArray(dtype='float32') + a.createFromNumpy(arr,rs) + + narr, nrs = a.copyToNumpy() + nrs = nrs[:,0] + + diff = np.max(np.abs(narr-arr)) + diff += np.max(np.abs(nrs-rs.astype('int64'))) + self.assertTrue(diff< 0.000001) def test_dynamicTypeChange(self): print('TestSimpleArray: dynamicTypeChange')