def test_get_segment_counts(self): """Tests get_segment_counts.""" segmenter_name = "student_container_wrapper.StudentContainerWrapper.SEGMENTERS" # test 1 (normal test case) with unittest.mock.patch(segmenter_name) as segmenter_mock1: segmenter_mock1.__getitem__.return_value = unittest.mock.MagicMock(side_effect=["UENG", "UENG", "ULSA"]) student_container_mock1 = unittest.mock.MagicMock() student_container_mock1.__iter__.return_value = [1, 2, 3] expected1 = {"UENG": 2, "ULSA": 1} actual1 = segment.get_segment_counts(student_container_mock1, "school") self.assertEqual(actual1, expected1) # test 2 (empty container) with unittest.mock.patch(segmenter_name) as segmenter_mock2: segmenter_mock2.__getitem__.return_value = unittest.mock.MagicMock(side_effect=[]) student_container_mock2 = unittest.mock.MagicMock() student_container_mock2.__iter__.return_value = [] expected2 = {} actual2 = segment.get_segment_counts(student_container_mock2, "school") self.assertEqual(actual2, expected2)
def test_get_segment_counts(self): """Tests get_segment_counts.""" segmenter_name = ( 'student_container_wrapper.StudentContainerWrapper.SEGMENTERS') # test 1 (normal test case) with unittest.mock.patch(segmenter_name) as segmenter_mock1: segmenter_mock1.__getitem__.return_value = unittest.mock.MagicMock( side_effect=['UENG', 'UENG', 'ULSA']) student_container_mock1 = unittest.mock.MagicMock() student_container_mock1.__iter__.return_value = [1, 2, 3] expected1 = { 'UENG': 2, 'ULSA': 1 } actual1 = segment.get_segment_counts( student_container_mock1, 'school') self.assertEqual(actual1, expected1) # test 2 (empty container) with unittest.mock.patch(segmenter_name) as segmenter_mock2: segmenter_mock2.__getitem__.return_value = unittest.mock.MagicMock( side_effect=[]) student_container_mock2 = unittest.mock.MagicMock() student_container_mock2.__iter__.return_value = [] expected2 = {} actual2 = segment.get_segment_counts( student_container_mock2, 'school') self.assertEqual(actual2, expected2)
'--student-archive-path', dest='student_archive_path', help='Path of the student archive file.', required=True) parser.add_argument( '--swig-module-path', dest='swig_module_path', help='Directory containing the swig modules.', action=ReadableDirectory, required=True) args = parser.parse_args() # read edges from file; these correspond to actual interaction values edge_lines = list(edge_analysis.get_vertices_values(args.file)) # get expected interaction values students_wrapper = StudentContainerWrapper( args.swig_module_path, args.student_archive_path) segment_counts = segment.get_segment_counts(students_wrapper, args.field) # compare actual edges with expected edges, put into matrix segments = sorted(list(segment_counts.keys())) population = sum(segment_counts.values()) heatmatrix = numpy.zeros((len(segments), len(segments))) for vertex1, vertex2, actual_weight in edge_lines: vertex1_weight = segment_counts[vertex1] vertex2_weight = segment_counts[vertex2] # store vertex expected weight v1v2_expected_weight = ( (vertex2_weight / population) * edge_analysis.get_vertex_total_weight(edge_lines, vertex1)) v2v1_expected_weight = ( (vertex1_weight / population) *
# get container of students students = StudentContainerWrapper( args.swig_module_path, args.student_archive_path) # get the weights of individual segments lines = list(vertex_analysis.get_id_values(args.file)) mapped_to_segments = vertex_analysis.map_to_segments( lines, StudentContainerWrapper.SEGMENTERS[args.field], students) reduced_data = vertex_analysis.reduce_to_in_out( mapped_to_segments, args.in_segment) if unweighted: actual_segments = {key: len(data) for key, data in reduced_data.items()} elif weighted: actual_segments = {key: sum(data) for key, data in reduced_data.items()} print(actual_segments) population_segments = segment.get_segment_counts(students, args.field) print(population_segments[args.in_segment]) population = len(students) total_weight = sum(line[1] for line in lines) if weighted else len(lines) # print actual weight vs. expected weight RPD expected_weight = (population_segments[args.in_segment] / population * total_weight) actual_weight = actual_segments[args.in_segment] print(calculation.relative_percent_difference( actual_weight, expected_weight))
required=True) parser.add_argument('--swig-module-path', dest='swig_module_path', help='Directory containing the swig modules.', action=ReadableDirectory, required=True) args = parser.parse_args() # read edges from file; these correspond to actual interaction values edge_lines = list(edge_analysis.get_vertices_values(args.file)) # get expected interaction values students_wrapper = StudentContainerWrapper(args.swig_module_path, args.student_archive_path) segment_counts = segment.get_segment_counts(students_wrapper, args.field) # compare actual edges with expected edges, put into matrix segments = sorted(list(segment_counts.keys())) population = sum(segment_counts.values()) heatmatrix = numpy.zeros((len(segments), len(segments))) for vertex1, vertex2, actual_weight in edge_lines: vertex1_weight = segment_counts[vertex1] vertex2_weight = segment_counts[vertex2] # store vertex expected weight v1v2_expected_weight = ( (vertex2_weight / population) * edge_analysis.get_vertex_total_weight(edge_lines, vertex1)) v2v1_expected_weight = ( (vertex1_weight / population) *