def test_normalized_distance_faster_than_reference_implementation(): start_t = time() all_pairs_normalized_distances(XY_incomplete, verbose=False) fast_t = time() - start_t start_t = time() all_pairs_normalized_distances_reference(XY_incomplete) reference_t = time() - start_t print("Fast implementation: %0.2fs, reference implementation: %0.2fs" % ( fast_t, reference_t)) assert reference_t / fast_t > 2, "Expected 2x performance gain"
def test_normalized_distance_faster_than_reference_implementation(): start_t = time() all_pairs_normalized_distances(XY_incomplete, verbose=False) fast_t = time() - start_t start_t = time() all_pairs_normalized_distances_reference(XY_incomplete) reference_t = time() - start_t print("Fast implementation: %0.2fs, reference implementation: %0.2fs" % (fast_t, reference_t)) assert reference_t / fast_t > 2, "Expected 2x performance gain"
def test_normalized_distance_same_results_as_reference_implementation(): D_reference = all_pairs_normalized_distances_reference(XY_incomplete) D_fast = all_pairs_normalized_distances(XY_incomplete) eq_(D_fast.shape, D_reference.shape) assert not np.isnan(D_reference).any(), "NaN in distance matrix" assert not np.isnan(D_fast).any(), "NaN in distance matrix" n_inf_reference = (~np.isfinite(D_reference)).sum() n_inf_fast = (~np.isfinite(D_fast)).sum() print("# infinity reference=%d fast=%d" % (n_inf_reference, n_inf_fast)) eq_(n_inf_reference, n_inf_fast) diff = (D_fast - D_reference) finite_diffs = diff[np.isfinite(diff)] abs_diff = np.abs(finite_diffs) print(np.where(np.abs(diff) > 0.1)) mae = np.mean(abs_diff) assert mae < 0.0001, \ "Difference between distance matrices (MAE=%0.4f)" % mae
def test_normalized_distance_same_results_as_reference_implementation(): D_reference = all_pairs_normalized_distances_reference(XY_incomplete) D_fast = all_pairs_normalized_distances(XY_incomplete) eq_(D_fast.shape, D_reference.shape) assert not np.isnan(D_reference).any(), "NaN in distance matrix" assert not np.isnan(D_fast).any(), "NaN in distance matrix" n_inf_reference = (~np.isfinite(D_reference)).sum() n_inf_fast = (~np.isfinite(D_fast)).sum() print("# infinity reference=%d fast=%d" % ( n_inf_reference, n_inf_fast)) eq_(n_inf_reference, n_inf_fast) diff = (D_fast - D_reference) finite_diffs = diff[np.isfinite(diff)] abs_diff = np.abs(finite_diffs) print(np.where(np.abs(diff) > 0.1)) mae = np.mean(abs_diff) assert mae < 0.0001, \ "Difference between distance matrices (MAE=%0.4f)" % mae