Skip to content

Commit

Permalink
Merge pull request #81 from UCL/test_interp
Browse files Browse the repository at this point in the history
Tests for interp_fix
  • Loading branch information
jgomezdans authored Oct 28, 2019
2 parents 5b3bb31 + 63f0619 commit a76261c
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 54 deletions.
54 changes: 0 additions & 54 deletions kaska/interp_fix.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,57 +28,3 @@ def interp1d(newx, oldx, oldy):
newy[i] = np.interp(newx, oldx[mask], y[mask])
newy_T = newy.transpose(1,0).reshape((new_shape,) + oldy_shape)
return newy_T

def test1d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100)
np_ret = np.interp(newx, oldx, oldy)
numba_ret = interp1d(newx, oldx, oldy)
if not np.allclose(np_ret, numba_ret):
raise
print('Same result achieved')

def test2d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100,5)
numba_ret = interp1d(newx, oldx, oldy)
for i in range(5):
np_ret = np.interp(newx, oldx, oldy[:,i])
if not np.allclose(np_ret, numba_ret[:,i]):
raise
print('Same result achieved')

def test3d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100, 5, 10)
numba_ret = interp1d(newx, oldx, oldy)
for i in range(5):
for j in range(10):
np_ret = np.interp(newx, oldx, oldy[:,i, j])
if not np.allclose(np_ret, numba_ret[:,i, j]):
raise
print('Same result achieved')

def testgap():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100, 5, 10)
for i in range(5):
for j in range(10):
bad_pix = np.random.choice(range(100), 100)
gap_oldy = oldy[:,i, j].copy()
gap_oldy[bad_pix] = np.nan
numba_ret = interp1d(newx, oldx, gap_oldy)
np_ret = np.interp(newx, oldx, gap_oldy)
diff = numba_ret - np_ret
if not np.nansum(diff)<1e-10:
raise
print('Same result achieved and filled gaps')
if __name__ == '__main__':
test1d()
test2d()
test3d()
testgap()
54 changes: 54 additions & 0 deletions kaska/tests/test_interp.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
'''
Test the interp functionality
'''

import pytest
import numpy as np

import sys

from .. import interp_fix

def test1d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100)
np_ret = np.interp(newx, oldx, oldy)
numba_ret = interp_fix.interp1d(newx, oldx, oldy)
assert np.allclose(np_ret, numba_ret)

def test2d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100,5)
numba_ret = interp_fix.interp1d(newx, oldx, oldy)
for i in range(5):
np_ret = np.interp(newx, oldx, oldy[:,i])
assert np.allclose(np_ret, numba_ret[:,i])

def test3d():
newx = np.arange(200)
oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
oldy = oldy = np.random.rand(100, 5, 10)
numba_ret = interp_fix.interp1d(newx, oldx, oldy)
for i in range(5):
for j in range(10):
np_ret = np.interp(newx, oldx, oldy[:,i, j])
assert np.allclose(np_ret, numba_ret[:,i, j])

# def testgap():
# newx = np.arange(200)
# oldx = np.array(sorted(np.random.choice(np.arange(200), 100, replace=False)))
# oldy = oldy = np.random.rand(100, 5, 10)
# for i in range(5):
# for j in range(10):
# bad_pix = np.random.choice(range(100), 100)
# gap_oldy = oldy[:,i, j].copy()
# gap_oldy[bad_pix] = np.nan
# numba_ret = interp_fix.interp1d(newx, oldx, gap_oldy)
# np_ret = np.interp(newx, oldx, gap_oldy)
# diff = numba_ret - np_ret
# if not np.nansum(diff)<1e-10:
# raise
# print('Same result achieved and filled gaps')

0 comments on commit a76261c

Please sign in to comment.