putting understanding of hybridIA into code
This commit is contained in:
parent
19fbfb0968
commit
f8844285d7
|
@ -43,7 +43,7 @@ class TestUtil:
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('rv',[stats.rayleigh(),stats.weibull_min(1.2),stats.halfnorm(),stats.pareto(2.62)])
|
@pytest.mark.parametrize('rv',[stats.rayleigh(),stats.weibull_min(1.2),stats.halfnorm(),stats.pareto(2.62)])
|
||||||
def test_hybridIA(self,rv):
|
def test_hybridIA_distribution(self,rv):
|
||||||
bins = np.linspace(0,10,100000)
|
bins = np.linspace(0,10,100000)
|
||||||
centers = (bins[1:]+bins[:-1])/2
|
centers = (bins[1:]+bins[:-1])/2
|
||||||
N_samples = bins.shape[0]-1000
|
N_samples = bins.shape[0]-1000
|
||||||
|
@ -52,6 +52,21 @@ class TestUtil:
|
||||||
dist_sampled = np.histogram(centers[selected],bins)[0]/N_samples*np.sum(dist)
|
dist_sampled = np.histogram(centers[selected],bins)[0]/N_samples*np.sum(dist)
|
||||||
assert np.sqrt(((dist - dist_sampled) ** 2).mean()) < .025 and selected.shape[0]==N_samples
|
assert np.sqrt(((dist - dist_sampled) ** 2).mean()) < .025 and selected.shape[0]==N_samples
|
||||||
|
|
||||||
|
def test_hybridIA_constant(self):
|
||||||
|
N_bins = np.random.randint(20,400)
|
||||||
|
m = np.random.randint(1,20)
|
||||||
|
N_samples = m * N_bins
|
||||||
|
dist = np.ones(N_bins)*np.random.rand()
|
||||||
|
assert np.all(np.sort(util.hybrid_IA(dist,N_samples))==np.arange(N_samples).astype(int)//m)
|
||||||
|
|
||||||
|
def test_hybridIA_linear(self):
|
||||||
|
N_points = np.random.randint(10,200)
|
||||||
|
m = np.random.randint(1,20)
|
||||||
|
dist = np.arange(N_points)
|
||||||
|
N_samples = m * np.sum(dist)
|
||||||
|
assert np.all(np.bincount(util.hybrid_IA(dist*np.random.rand(),N_samples)) == dist*m)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('point,direction,normalize,keepdims,answer',
|
@pytest.mark.parametrize('point,direction,normalize,keepdims,answer',
|
||||||
[
|
[
|
||||||
([1,0,0],'z',False,True, [1,0,0]),
|
([1,0,0],'z',False,True, [1,0,0]),
|
||||||
|
|
Loading…
Reference in New Issue