def test_c_reader_npz(self): distreader = DistNpz(self.currentFolder + "/../examples/toydata10.dist.npz") distdata = distreader.read(order='F',force_python_only=False) snp_c = distdata.val self.assertEqual(np.float64, snp_c.dtype) self.assertTrue(np.allclose(self.dist_values[:,:10], snp_c, rtol=1e-05, atol=1e-05)) distreader1 = DistNpz(self.currentFolder + "/../examples/toydata10.dist.npz") distreader2 = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")[:,:10] self.assertTrue(np.allclose(distreader1.read().val, distreader2.read().val, rtol=1e-05, atol=1e-05)) distdata.val[1,2] = np.NaN # Inject a missing value to test writing and reading missing values output = "tempdir/distreader/toydata10.dist.npz" create_directory_if_necessary(output) DistNpz.write(output,distdata) snpdata2 = DistNpz(output).read() np.testing.assert_array_almost_equal(distdata.val, snpdata2.val, decimal=10) snpdata3 = distdata[:,0:0].read() #create distdata with no sids output = "tempdir/distreader/toydata0.dist.npz" DistNpz.write(output,snpdata3) snpdata4 = DistNpz(output).read() assert snpdata3 == snpdata4
def setUpClass(self): self.currentFolder = os.path.dirname(os.path.realpath(__file__)) #TODO: get data set with NANs! distreader = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz") self.distdata = distreader.read(order='F', force_python_only=True) self.dist_values = self.distdata.val
def test_write_x_x_cpp(self): distreader = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz") for order in ['C','F']: for dtype in [np.float32,np.float64]: distdata = distreader.read(order=order,dtype=dtype) distdata.val[-1,0] = float("NAN") output = "tempdir/toydata.{0}{1}.cpp.dist.npz".format(order,"32" if dtype==np.float32 else "64") create_directory_if_necessary(output) DistNpz.write(output, distdata) snpdata2 = DistNpz(output).read() np.testing.assert_array_almost_equal(distdata.val, snpdata2.val, decimal=10)
def test_hdf5_case3(self): distreader1 = DistHdf5( self.currentFolder + "/../examples/toydata.snpmajor.dist.hdf5")[::2, :] distreader2 = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")[::2, :] self.assertTrue( np.allclose(distreader1.read().val, distreader2.read().val, rtol=1e-05, atol=1e-05))
def test_subset_view(self): distreader2 = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")[:,:] result = distreader2.read(view_ok=True) self.assertFalse(distreader2 is result) result2 = result[:,:].read() self.assertFalse(np.may_share_memory(result2.val,result.val)) result3 = result[:,:].read(view_ok=True) self.assertTrue(np.may_share_memory(result3.val,result.val)) result4 = result3.read() self.assertFalse(np.may_share_memory(result4.val,result3.val)) result5 = result4.read(view_ok=True) self.assertTrue(np.may_share_memory(result4.val,result5.val))