def test_summarize_blank(self):
        records = []
        expected_summary = {}

        summary = {}
        summarize_quality_records(records, summary)

        self.assertEqual(expected_summary, summary)
    def test_summarize_ignores_index_reads(self):
        read_lengths = [95, 5, 95]
        records = [dict(cycle=96, quality_bins=[0] * 50),
                   dict(cycle=100, quality_bins=[0] * 50)]
        records[0]['quality_bins'][29] = 1
        records[1]['quality_bins'][29] = 1
        expected_summary = {}

        summary = {}
        summarize_quality_records(records, summary, read_lengths)

        self.assertEqual(expected_summary, summary)
    def test_summarize(self):
        records = [dict(cycle=1, quality_bins=[0] * 50),
                   dict(cycle=101, quality_bins=[0] * 50)]
        records[0]['quality_bins'][28] = 1
        records[0]['quality_bins'][29] = 1
        records[1]['quality_bins'][29] = 1
        expected_summary = dict(q30_fwd=2/3.0)

        summary = {}
        summarize_quality_records(records, summary)

        self.assertEqual(expected_summary, summary)
    def test_summarize_reverse(self):
        read_lengths = [95, 5, 95]
        records = [dict(cycle=1, quality_bins=[0] * 50),
                   dict(cycle=101, quality_bins=[0] * 50)]
        records[0]['quality_bins'][28] = 1
        records[0]['quality_bins'][29] = 1
        records[1]['quality_bins'][29] = 1
        expected_summary = dict(q30_fwd=0.5, q30_rev=1.0)

        summary = {}
        summarize_quality_records(records, summary, read_lengths)

        self.assertEqual(expected_summary, summary)