def test_get_qual_stats(self): """ Properly generates averages, std dev for bins """ qual_bins = [[1, 2, 6], [1, 2, 3], [2, 4], [4]] expected_ave_bins = [3, 2, 3, 4] expected_std_dev_bins = [2.16, 0.816, 1.0, 0] expected_total_bases_bins = [3, 3, 2, 1] score_min = 25 actual_ave_bins, actual_std_dev_bins, actual_total_bases_bins,\ suggested_trunc_pos = get_qual_stats(qual_bins, score_min) # Should give correct suggested truncation position, where the quality # score average went below 25, in this case, at base 0 expected_trunc_pos = 0 self.assertEqual(suggested_trunc_pos, expected_trunc_pos) # Round standard deviation calculations for n in range(len(actual_std_dev_bins)): actual_std_dev_bins[n] = round(actual_std_dev_bins[n], 3) self.assertEqual(actual_ave_bins, expected_ave_bins) self.assertEqual(actual_std_dev_bins, expected_std_dev_bins) self.assertEqual(actual_total_bases_bins, expected_total_bases_bins)