def test_get_scoop_simulate_muon_rings_path(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) path_to_scoop_simulate = dme.get_scoop_simulate_muon_rings_path() existing = False if os.path.exists(path_to_scoop_simulate): existing = True assert existing == True
def test_create_outputDir(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) dme.create_outputDir() existing = False if os.path.isdir(output_dir): existing = True assert existing == True
def test_check_input_correctness_noScoopHosts(): try: dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, "/foo/bar") dme.check_input_correctness() error = False except ValueError: error = True assert error == True
def test_check_input_correctness_wrong_stepSize(): try: dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, "small", scoop_hosts) dme.check_input_correctness() error = False except ValueError: error = True assert error == True
def test_check_input_correctness_wrong_muonNumber2(): try: dme = edM.DetectionMethodEvaluation(output_dir, "5", steps, step_size, scoop_hosts) dme.check_input_correctness() error = False except ValueError: error = True assert error == True
def test_one_nsb_rate(): dme = edM.DetectionMethodEvaluation(output_dir, 100, steps, step_size, scoop_hosts) dme.one_nsb_rate(output_dir, 35e6) wild_card_path = os.path.join(output_dir, "*") i = 0 for path in glob.glob(wild_card_path): i += 1 assert i == 4
def test_save_to_file(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) events = [[3, 3, 2, 1, 1, 1, 200 / 3, 200 / 3], [3, 3, 2, 1, 1, 1, 200 / 3, 200 / 3]] file_out = os.path.join(output_dir, "nsb_35e6_precision_results.csv") dme.save_to_file(file_out, events) statinfo = os.stat(file_out) assert os.path.exists(file_out) and statinfo.st_size > 112
def test_run_simulation(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) dme.run_simulation(simulation_dir) dir_wild_card_path = os.path.join(simulation_dir, "*") i = 0 for path in glob.glob(dir_wild_card_path): i += 1 assert i == 2
def test_plot_different_NSB(): dme = edM.DetectionMethodEvaluation(output_dir, 10, steps, step_size, scoop_hosts) NSB_rates = [1, 2, 3] precisions = [99, 98, 97] sensitivities = [100, 50, 80] muonCounts = [12, 12, 12] dme.plot_different_NSB(NSB_rates, precisions, sensitivities, muonCounts) number_of_elements = len(os.listdir(output_dir)) assert number_of_elements == 2
def test_plot_sensitivity_precision(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) results = { "avg_precision": 90, "std_precision": 10, "avg_sensitivity": 90, "std_sensitivity": 10, "precisions": np.array([80, 100]), "sensitivities": np.array([80, 100]) } dme.plot_sensitivity_precision(results, output_dir) path = os.path.join(output_dir, "sensitivity.png") path2 = os.path.join(output_dir, "precision.png") assert os.path.exists(path) and os.path.exists(path2)
def test_true_false_decisions(): dme = edM.DetectionMethodEvaluation(output_dir, 2, steps, step_size, scoop_hosts) p1 = np.array([1, 1, 2]) p2 = np.array([1, 1, 1]) p3 = np.array([2, 2, 2]) p4 = np.array([4, 4, 4]) p5 = np.array([5, 5, 5]) all_photons_run = np.array( [np.array([p1, p2, p3, p4, p5]), np.array([p1, p2, p3, p4, p5])]) pure_cherenkov_run_photons = np.array( [np.array([p2, p3, p4]), np.array([p2, p3, p4])]) nsb_run_found_photons = np.array( [np.array([p1, p3, p4]), np.array([p1, p3, p4])]) events = dme.true_false_decisions(all_photons_run, pure_cherenkov_run_photons, nsb_run_found_photons) np.testing.assert_almost_equal(events, [[3, 3, 2, 1, 1, 1, 200 / 3, 200 / 3], [3, 3, 2, 1, 1, 1, 200 / 3, 200 / 3]], 5)
def test_multiple_nsb_rates(): dme = edM.DetectionMethodEvaluation(output_dir, 10, 5, 1.05, scoop_hosts) dme.multiple_nsb_rates() number_of_elements = len(os.listdir(output_dir)) assert number_of_elements == 7
def test_analyze(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) file_out = os.path.join(output_dir, "nsb_35e6_precision_results.csv") results = dme.analyze(file_out) np.testing.assert_almost_equal(results['avg_precision'], 200 / 3, 5)
def test_do_clustering2(): dme = edM.DetectionMethodEvaluation(output_dir, number_of_muons, steps, step_size, scoop_hosts) results = dme.do_clustering(simulationFile, simulationFile) assert len(results[0]) != 0