Example #1
0
    def test_simple_map(self):
        # get input data and expected output.  We keep exactly one map batch of reads
        # (as per self._map_batch_size)
        reads = tseal_utils.get_mini_ref_seqs()[0:(self._map_batch_size / 2)]
        expected_output = sorted(
            tseal_utils.rapi_mini_ref_seqs_sam_no_header().split(
                '\n')[0:2 * len(reads)])
        self._log.info("loaded %s fragments and %s lines of expected output",
                       len(reads), len(expected_output))
        if len(reads) * 2 < self._mapper.batch_size:
            self.fail(
                "batch size for test (%s) is set larger than the number of available "
                "reads (%s). Aligner won't run" %
                (self._mapper.batch_size, len(reads) * 2))
        for idx, fragment in enumerate(reads):
            self._ctx.set_input_key(idx * 100)
            self._ctx.set_input_value('\t'.join(fragment))
            self._mapper.map(self._ctx)

        produced_sam = sorted(self._ctx.sam_lines)
        self.assertEquals(len(expected_output), len(produced_sam))
        self.assertEquals(expected_output, produced_sam)
        self.assertEquals(
            len(reads) * 2, self._ctx.counters["SEQAL:EMITTED SAM RECORDS"])
Example #2
0
 def test_sam(self):
     io = StringIO()
     self.hi.write_sam(io, include_header=False)
     sam = io.getvalue()
     expected_sam = test_utils.rapi_mini_ref_seqs_sam_no_header()
     self.assertEquals(expected_sam, sam)