def test_spin_magnitude_normalised(self): norms = list() for ii in range(self.n_test): parameters = self.prior.sample() temp = spin.iid_spin_magnitude_beta(self.test_data, **parameters) norms.append(trapz(trapz(temp, self.a_array), self.a_array)) self.assertAlmostEqual(float(xp.max(xp.abs(1 - xp.asarray(norms)))), 0, 1)
def test_fhf_normalised(self): norms = list() for _ in range(self.n_test): lamb = np.random.uniform(-15, 15) p_z = redshift.power_law_redshift(self.test_data, lamb) norms.append(trapz(p_z, self.zs)) self.assertAlmostEqual(xp.max(xp.abs(xp.asarray(norms) - 1)), 0.0)
def __init__(self): self.retention_file = self.__retention_file__() branching_dataset = np.load( self.retention_file, allow_pickle=True, encoding="latin1", ) self.a_1_array = xp.asarray(branching_dataset["a1"]) self.a_2_array = xp.asarray(branching_dataset["a2"]) self.mass_ratio_array = xp.asarray(branching_dataset["q"]) self.retention_fraction = xp.asarray( branching_dataset["interpolated_retention_fraction"]) self.mass_1s = xp.linspace(2, 200, 2000) self.mass_ratio_grid, self.mass_1_grid = xp.meshgrid( self.mass_ratio_array, self.mass_1s) self.first_generation_data = dict(mass_1=self.mass_1_grid, mass_ratio=self.mass_ratio_grid)
def test_spin_orientation_normalised(self): norms = list() for ii in range(self.n_test): parameters = self.prior.sample() temp = spin.iid_spin_orientation_gaussian_isotropic( self.test_data, **parameters) norms.append(trapz(trapz(temp, self.costilts), self.costilts)) self.assertAlmostEqual(float(xp.max(xp.abs(1 - xp.asarray(norms)))), 0, 5)
def low_spin_component_big_grid(spin, spin_array): delta = xp.asarray(spin == 0).astype(float) delta_norm = xp.asarray(spin_array == 0).astype(float) return delta / trapz(delta_norm, spin_array)
def low_spin_component_grid(spin): delta = xp.asarray(spin == 0).astype(float) return delta / trapz(delta, spin)
def low_spin_component(spin): return xp.asarray(spin == 0).astype(float)
def _run_model_normalisation(self, model, priors): norms = list() for _ in range(self.n_test): p_z = model(self.test_data, **priors.sample()) norms.append(trapz(p_z, self.zs)) self.assertAlmostEqual(xp.max(xp.abs(xp.asarray(norms) - 1)), 0.0)
def _max_abs_difference(array, comparison): return float(xp.max(xp.abs(comparison - xp.asarray(array))))