def test_get_histogram_values_string(self): stats = view_stats.ViewStats('foo', '/somepath') range_widths = [7] values = [5] #import pdb; pdb.set_trace() s = stats.get_histogram_values_string(values, range_widths) self.assertEqual("| 5 |", s) range_widths = [7, 7] values = [5, 7] s = stats.get_histogram_values_string(values, range_widths) self.assertEqual("| 5 | 7 |", s) range_widths = [7, 7] values = [5555555, 7] s = stats.get_histogram_values_string(values, range_widths) self.assertEqual("| 5555555 | 7 |", s) range_widths = [7, 7] values = [55555555, 7] s = stats.get_histogram_values_string(values, range_widths) self.assertEqual("| 55555555| 7 |", s) range_widths = [7, 11] values = [55555555, 7] s = stats.get_histogram_values_string(values, range_widths) self.assertEqual("| 55555555| 7 |", s)
def test_feature_variance_zero_node(self): lines = [] lines.append('id,f1,f2,f3') self.create_file(self.feature_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_feature_variances() self.assertEqual({}, stats.feature_variances)
def test_score_mean_zero_node(self): lines = [] lines.append("id,f1,f2,f3,anomaly_score") self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_score_mean() self.assertEqual('noData', stats.score_mean)
def test_score_range_zero_node(self): lines = [] lines.append('id,f1,f2,f3,f4,f5,f6,f7,f8,f9,anomaly_score') self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.set_score_range() self.assertEqual('noData', stats.score_range_min) self.assertEqual('noData', stats.score_range_max)
def test_get_range_header(self): stats = view_stats.ViewStats('foo', '/somepath') r = ["0.1-0.2"] h = stats.get_range_header(r) self.assertEqual("| 0.1-0.2 |", h) r = ["0.1-0.2", "0.2-0.33"] h = stats.get_range_header(r) self.assertEqual("| 0.1-0.2 | 0.2-0.33 |", h)
def test_score_mean_single_node(self): lines = [] lines.append("id,f1,f2,f3,anomaly_score") lines.append("001,1,0,12,0.9") lines.append("") # ensure handle empty lines self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_score_mean() self.assertEqual('0.90', stats.score_mean)
def test_score_range_single_node(self): lines = [] lines.append('id,f1,f2,f3,f4,f5,f6,f7,f8,f9,anomaly_score') lines.append('001,1,0,12,0,0,45,0,0,0,0.9') self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.set_score_range() self.assertEqual('0.90', stats.score_range_min) self.assertEqual('0.90', stats.score_range_max)
def test_get_proper_length_column(self): stats = view_stats.ViewStats('foo', '/somepath') c = stats.get_proper_length_column('Features', 6) self.assertEqual('Features', c) c = stats.get_proper_length_column('Features', 8) self.assertEqual('Features', c) c = stats.get_proper_length_column('Features', 9) self.assertEqual('Features ', c) c = stats.get_proper_length_column('Features', 10) self.assertEqual('Features ', c)
def test_get_dash_bar(self): stats = view_stats.ViewStats('foo', '/somepath') widths = [6] db = stats.get_dash_bar(widths) self.assertEqual("----------", db) # | xxxxxx | (10 chars wide) widths = [6, 4] db = stats.get_dash_bar(widths) self.assertEqual("-----------------", db) # | xxxxxx | xxxx | (17 chars wide) widths = [6, 4, 2] db = stats.get_dash_bar(widths) self.assertEqual("----------------------", db) # | xxxxxx | xxxx | xx | (22 chars wide)
def test_feature_variance_single_node(self): lines = [] lines.append('id,f1,f2,f3') lines.append('0001,1,2,3') self.create_file(self.feature_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_feature_variances() f1_variance = stats.feature_variances['f1'] f2_variance = stats.feature_variances['f2'] f3_variance = stats.feature_variances['f3'] self.assertEqual(f1_variance, '0.00') self.assertEqual(f2_variance, '0.00') self.assertEqual(f3_variance, '0.00')
def test_feature_mean_single_node(self): lines = [] lines.append('id,f1,f2,f3') lines.append('0001,1,2,3') self.create_file(self.feature_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_feature_means() f1_mean = stats.feature_means['f1'] f2_mean = stats.feature_means['f2'] f3_mean = stats.feature_means['f3'] self.assertEqual(f1_mean, '1.00') self.assertEqual(f2_mean, '2.00') self.assertEqual(f3_mean, '3.00')
def test_compute_feature_ranges_single_node(self): flines = [] flines.append("id,f1,f2,f3") flines.append("001,6,2,12") self.create_file(self.feature_file_path, flines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_feature_ranges() self.assertEqual('6', stats.feature_mins['f1']) self.assertEqual('2', stats.feature_mins['f2']) self.assertEqual('12', stats.feature_mins['f3']) self.assertEqual('6', stats.feature_maxs['f1']) self.assertEqual('2', stats.feature_maxs['f2']) self.assertEqual('12', stats.feature_maxs['f3'])
def test_score_variance(self): lines = [] lines.append("id,f1,f2,f3,anomaly_score") lines.append("001,1,0,12,0.9") lines.append("002,1,0,10,0.7") lines.append("003,1,0,11,0.5") lines.append("") # ensure handle empty lines lines.append("004,1,0,9,0.3") lines.append("005,1,0,9,0.1") self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_score_variance() self.assertEqual('0.10', stats.score_variance)
def test_bin_the_values(self): stats = view_stats.ViewStats('foo', '/somepath') values = [1] range_pairs = [[1.0, 1.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(1, len(bins)) self.assertEqual(1, bins[0]) values = [1, 1] range_pairs = [[1.0, 1.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(1, len(bins)) self.assertEqual(2, bins[0]) values = [1, 1, 1] range_pairs = [[1.0, 1.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(1, len(bins)) self.assertEqual(3, bins[0]) values = [1, 2, 1] range_pairs = [[1.0, 1.5], [1.5, 2.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(2, len(bins)) self.assertEqual(2, bins[0]) self.assertEqual(1, bins[1]) values = [1, 2, 3, 4, 5, 6, 1.1, 4.5, 4.7, 4] range_pairs = [[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0], [5.0, 6.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(5, len(bins)) self.assertEqual(2, bins[0]) self.assertEqual(1, bins[1]) self.assertEqual(1, bins[2]) self.assertEqual(4, bins[3]) self.assertEqual(2, bins[4]) values = [1, 1, 1, 6, 1, 6, 1, 1, 1, 1] range_pairs = [[1.0, 2.0], [2.0, 3.0], [3.0, 4.0], [4.0, 5.0], [5.0, 6.0]] bins = stats.bin_the_values(values, range_pairs) self.assertEqual(5, len(bins)) self.assertEqual(8, bins[0]) self.assertEqual(0, bins[1]) self.assertEqual(0, bins[2]) self.assertEqual(0, bins[3]) self.assertEqual(2, bins[4])
def test_score_histogram(self): lines = [] lines.append("id,f1,f2,f3,anomaly_score") lines.append("001,1,0,12,0.9") lines.append("002,1,0,10,0.7") lines.append("003,1,0,11,0.5") lines.append("") # ensure handle empty lines lines.append("004,1,0,9,0.3") lines.append("005,1,0,9,0.1") self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_score_histogram(5) #print("\nscore histogram : {0}".format(stats.histogram_for_scores)) #print("\ncounts {0}".format(stats.histogram_for_scores[0])) #print("\nranges {0}".format(stats.histogram_for_scores[1])) counts = [2, 0, 2, 1] ranges = [0.1, 0.3, 0.5, 0.7, 0.9] self.assertTrue(len(stats.histogram_for_scores[0]) > 0) self.assertTrue(len(stats.histogram_for_scores[1]) > 0)
def test_feature_variance(self): lines = [] lines.append('id,f1,f2,f3') lines.append('0001,1,2,2') lines.append('0002,2,2,4') lines.append('0003,3,2,4') lines.append('0004,4,2,4') lines.append('0005,5,2,5') lines.append('0006,6,2,5') lines.append('0007,7,2,7') lines.append('0008,8,2,9') self.create_file(self.feature_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_feature_variances() f1_variance = stats.feature_variances['f1'] f2_variance = stats.feature_variances['f2'] f3_variance = stats.feature_variances['f3'] self.assertEqual(f1_variance, '6.00') self.assertEqual(f2_variance, '0.00') self.assertEqual(f3_variance, '4.57')
def test_derive_histogram_ranges(self): stats = view_stats.ViewStats('foo', '/somepath') ranges = [] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("-noData-", range_strings[0]) self.assertEqual(1, len(range_strings)) ranges = [0.1] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("0.10 - 0.10", range_strings[0]) self.assertEqual(1, len(range_strings)) ranges = [0.1, 0.3] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("0.10 - 0.30", range_strings[0]) self.assertEqual(1, len(range_strings)) ranges = [0.1, 0.3, 0.5] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("0.10 - 0.30", range_strings[0]) self.assertEqual("0.30 - 0.50", range_strings[1]) self.assertEqual(2, len(range_strings)) ranges = [0.1, 0.3, 0.5, 0.7] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("0.10 - 0.30", range_strings[0]) self.assertEqual("0.30 - 0.50", range_strings[1]) self.assertEqual("0.50 - 0.70", range_strings[2]) self.assertEqual(3, len(range_strings)) ranges = [0.1, 0.3, 0.5, 0.7, 0.9] range_strings = stats.derive_histogram_ranges(ranges) self.assertEqual("0.10 - 0.30", range_strings[0]) self.assertEqual("0.30 - 0.50", range_strings[1]) self.assertEqual("0.50 - 0.70", range_strings[2]) self.assertEqual("0.70 - 0.90", range_strings[3]) self.assertEqual(4, len(range_strings))
def test_derive_histogram_ranges_as_floats(self): stats = view_stats.ViewStats('foo', '/somepath') range_bounds = [0.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(1, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(0.0, ranges[0][1]) range_bounds = [] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(1, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(0.0, ranges[0][1]) range_bounds = [0.0, 1.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(1, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(1.0, ranges[0][1]) range_bounds = [0.0, 1.0, 2.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(2, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(1.0, ranges[0][1]) self.assertEqual(1.0, ranges[1][0]) self.assertEqual(2.0, ranges[1][1]) range_bounds = [0.0, 1.0, 2.0, 3.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(3, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(1.0, ranges[0][1]) self.assertEqual(1.0, ranges[1][0]) self.assertEqual(2.0, ranges[1][1]) self.assertEqual(2.0, ranges[2][0]) self.assertEqual(3.0, ranges[2][1]) range_bounds = [0.0, 1.0, 2.0, 3.0, 4.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(4, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(1.0, ranges[0][1]) self.assertEqual(1.0, ranges[1][0]) self.assertEqual(2.0, ranges[1][1]) self.assertEqual(2.0, ranges[2][0]) self.assertEqual(3.0, ranges[2][1]) self.assertEqual(3.0, ranges[3][0]) self.assertEqual(4.0, ranges[3][1]) range_bounds = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0] ranges = stats.derive_histogram_ranges_as_floats(range_bounds) self.assertEqual(5, len(ranges)) self.assertEqual(0.0, ranges[0][0]) self.assertEqual(1.0, ranges[0][1]) self.assertEqual(1.0, ranges[1][0]) self.assertEqual(2.0, ranges[1][1]) self.assertEqual(2.0, ranges[2][0]) self.assertEqual(3.0, ranges[2][1]) self.assertEqual(3.0, ranges[3][0]) self.assertEqual(4.0, ranges[3][1]) self.assertEqual(4.0, ranges[4][0]) self.assertEqual(5.0, ranges[4][1])
def test_score_mean_empty_file(self): lines = [] self.create_file(self.score_file_path, lines) stats = view_stats.ViewStats(self.view_name, self.root) stats.compute_score_mean() self.assertEqual('noData', stats.score_mean)
def test_get_range_bounds(self): stats = view_stats.ViewStats('foo', '/somepath') values = [1.0] bin_count = 1 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(2, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(1.0, bounds[1]) # needs one bin, ask for one bin values = [1.0, 1.0] bin_count = 1 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(2, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(1.0, bounds[1]) # data needs 1 bin, ask for two bins, get 1 values = [1.0, 1.0] bin_count = 2 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(2, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(1.0, bounds[1]) # data needs two bins, ask for five, get 2 values = [1.0, 2.0] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(3, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(1.5, bounds[1]) self.assertEqual(2.0, bounds[2]) # data needs two bins, ask for five, get 5 <- stopped being fancy a this point # and just yield 5 values = [0.0, 0.0, 10.0] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(6, len(bounds)) self.assertEqual(0.0, bounds[0]) self.assertEqual(2.0, bounds[1]) self.assertEqual(4.0, bounds[2]) self.assertEqual(6.0, bounds[3]) self.assertEqual(8.0, bounds[4]) self.assertEqual(10.0, bounds[5]) # data needs multiple bins, ask for five, get 5 values = [0.0, 2.0, 4.0, 4.0, 10.0] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(6, len(bounds)) self.assertEqual(0.0, bounds[0]) self.assertEqual(2.0, bounds[1]) self.assertEqual(4.0, bounds[2]) self.assertEqual(6.0, bounds[3]) self.assertEqual(8.0, bounds[4]) self.assertEqual(10.0, bounds[5]) # data needs one bin, ask for five, get 1 values = [2, 2, 2, 2, 2, 2, 2, 2, 2] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(2, len(bounds)) self.assertEqual(2.0, bounds[0]) self.assertEqual(2.0, bounds[1]) # data needs multiple bins, ask for five, get 5 values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(6, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(3.0, bounds[1]) self.assertEqual(5.0, bounds[2]) self.assertEqual(7.0, bounds[3]) self.assertEqual(9.0, bounds[4]) self.assertEqual(11.0, bounds[5]) # data needs multiple bins, ask for 6, get 6 values = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ] bin_count = 6 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(7, len(bounds)) self.assertEqual(1.0, bounds[0]) self.assertEqual(3.0, bounds[1]) self.assertEqual(5.0, bounds[2]) self.assertEqual(7.0, bounds[3]) self.assertEqual(9.0, bounds[4]) self.assertEqual(11.0, bounds[5]) self.assertEqual(13.0, bounds[6]) values = [6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(6, len(bounds)) self.assertEqual("2.00", "{0:.2f}".format(bounds[0])) self.assertEqual("2.80", "{0:.2f}".format(bounds[1])) self.assertEqual("3.60", "{0:.2f}".format(bounds[2])) self.assertEqual("4.40", "{0:.2f}".format(bounds[3])) self.assertEqual("5.20", "{0:.2f}".format(bounds[4])) self.assertEqual("6.00", "{0:.2f}".format(bounds[5])) values = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(2, len(bounds)) self.assertEqual(2.0, bounds[0]) self.assertEqual(2.0, bounds[1]) values = [12, 10, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9] bin_count = 5 bounds = stats.get_range_bounds(values, bin_count) self.assertEqual(6, len(bounds)) self.assertEqual("9.00", "{0:.2f}".format(bounds[0])) self.assertEqual("9.60", "{0:.2f}".format(bounds[1])) self.assertEqual("10.20", "{0:.2f}".format(bounds[2])) self.assertEqual("10.80", "{0:.2f}".format(bounds[3])) self.assertEqual("11.40", "{0:.2f}".format(bounds[4])) self.assertEqual("12.00", "{0:.2f}".format(bounds[5]))
def test_get_range_widths(self): stats = view_stats.ViewStats('foo', '/somepath') r = ["0.1-0.2", "0.2-0.33"] w = stats.get_range_widths(r) self.assertEqual(7, w[0]) self.assertEqual(8, w[1])
def test_get_histogram_range_portions(self): stats = view_stats.ViewStats('foo', '/somepath') # case : 1 wide for 2 ranges histogram_bins_per_output_line = 1 histogram_ranges = ["1-2", "2-3"] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(2, len(range_fragments)) self.assertEqual(1, len(range_fragments[0])) self.assertEqual(1, len(range_fragments[1])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[1][0]) # case : 2 wide for 3 ranges histogram_bins_per_output_line = 2 histogram_ranges = ["1-2", "2-3", "3-4"] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(2, len(range_fragments)) self.assertEqual(2, len(range_fragments[0])) self.assertEqual(1, len(range_fragments[1])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[1][0]) # case : 2 wide for 4 ranges histogram_bins_per_output_line = 2 histogram_ranges = ["1-2", "2-3", "3-4", "4-5"] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(2, len(range_fragments)) self.assertEqual(2, len(range_fragments[0])) self.assertEqual(2, len(range_fragments[1])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[1][0]) self.assertEqual("4-5", range_fragments[1][1]) # case : 2 wide for 5 ranges histogram_bins_per_output_line = 2 histogram_ranges = ["1-2", "2-3", "3-4", "4-5", "5-6"] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(3, len(range_fragments)) self.assertEqual(2, len(range_fragments[0])) self.assertEqual(2, len(range_fragments[1])) self.assertEqual(1, len(range_fragments[2])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[1][0]) self.assertEqual("4-5", range_fragments[1][1]) self.assertEqual("5-6", range_fragments[2][0]) # case : 3 wide for 7 ranges histogram_bins_per_output_line = 3 histogram_ranges = ["1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8"] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(3, len(range_fragments)) self.assertEqual(3, len(range_fragments[0])) self.assertEqual(3, len(range_fragments[1])) self.assertEqual(1, len(range_fragments[2])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[0][2]) self.assertEqual("4-5", range_fragments[1][0]) self.assertEqual("5-6", range_fragments[1][1]) self.assertEqual("6-7", range_fragments[1][2]) self.assertEqual("7-8", range_fragments[2][0]) # case : 5 wide for 10 ranges histogram_bins_per_output_line = 5 histogram_ranges = [ "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8", "8-9", "9-10", "10-11" ] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(2, len(range_fragments)) self.assertEqual(5, len(range_fragments[0])) self.assertEqual(5, len(range_fragments[1])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[0][2]) self.assertEqual("4-5", range_fragments[0][3]) self.assertEqual("5-6", range_fragments[0][4]) self.assertEqual("6-7", range_fragments[1][0]) self.assertEqual("7-8", range_fragments[1][1]) self.assertEqual("8-9", range_fragments[1][2]) self.assertEqual("9-10", range_fragments[1][3]) self.assertEqual("10-11", range_fragments[1][4]) # case : 5 wide for 11 ranges histogram_bins_per_output_line = 5 histogram_ranges = [ "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8", "8-9", "9-10", "10-11", "11-12" ] range_fragments = stats.get_histogram_portions( histogram_ranges, histogram_bins_per_output_line) self.assertEqual(3, len(range_fragments)) self.assertEqual(5, len(range_fragments[0])) self.assertEqual(5, len(range_fragments[1])) self.assertEqual(1, len(range_fragments[2])) self.assertEqual("1-2", range_fragments[0][0]) self.assertEqual("2-3", range_fragments[0][1]) self.assertEqual("3-4", range_fragments[0][2]) self.assertEqual("4-5", range_fragments[0][3]) self.assertEqual("5-6", range_fragments[0][4]) self.assertEqual("6-7", range_fragments[1][0]) self.assertEqual("7-8", range_fragments[1][1]) self.assertEqual("8-9", range_fragments[1][2]) self.assertEqual("9-10", range_fragments[1][3]) self.assertEqual("10-11", range_fragments[1][4]) self.assertEqual("11-12", range_fragments[2][0])
producer.send( "ad-log", bytes('Processing Anomaly View ' + view_type + ' (' + str(i) + '/' + str(len(views.keys())) + ')', encoding='utf-8')) log.info('Processing Anomaly View ' + view_type + ' (' + str(i) + '/' + str(len(views.keys())) + ')') view_data = views[view_type] view = AnomalyView(view_type, view_data['instance_set'], view_data['feature_set']) success = view.compute_view_and_save() if success == True: try: view.compute_anomaly_score() ad_output_root = os.getcwd() vstats = view_stats.ViewStats(view_type, ad_output_root) view.attach_scores_to_db(vstats) vstats.compute_all_stats() producer.send( "ad-log", bytes(vstats.get_stats_info_formatted(), encoding='utf-8')).get() log.info(vstats.get_stats_info_formatted()) except: producer.send( "ad-log", bytes( "error working with view {0} prevents statistics generation." .format(view_type), encoding='utf-8')) log.exception(
def test_round_the_bounds(self): stats = view_stats.ViewStats('foo', '/somepath') self.assertEqual(['0.0'], stats.round_the_bounds(['0']))