def test_extend_bug(self):
     cluster = Cluster(read=BED, write=PK)
     cluster.read_line('chr3 1 35 666 noname +')
     cluster2 = Cluster(read=BED, write=PK)
     cluster2.read_line('chr3 156 200 666 noname -')
     cluster.extend(100)
     cluster2.extend(100)
     result = cluster + cluster2
     self.assertEqual(200, len(result))
 def test_extend(self):
     cluster = Cluster(read=BED)
     cluster.read_line('chr3 1 35 noname 666 +')
     cluster2 = Cluster(read=BED)
     cluster2.read_line('chr3 56 100 noname 666 -')
     cluster.extend(100)
     cluster2.extend(100)
     self.assertEqual(cluster.write_line(), 'chr3\t1\t100\t100:1.00\t1.0\t+\t50\t100.0\n')
     self.assertEqual(cluster2.write_line(), 'chr3\t1\t100\t100:1.00\t1.0\t-\t50\t100.0\n')
    def read_and_extend(self, cluster, line, extension):
        cluster_aux = Cluster(read=BED, write=BED, read_half_open=True, write_half_open=True, rounding = True)
        if cluster.is_empty():
            cluster.read_line(line)
            cluster.extend(extension)
            #print cluster.write_line(), cluster._profile
        else:
            cluster_aux.read_line(line)
            cluster_aux.extend(extension)
            #print cluster_aux.write_line(), cluster_aux._profile
            cluster += cluster_aux

        #print cluster.write_line()
        return cluster
    def test_bed_half_open_to_wig_half_open2(self):
        cluster = Cluster(read=BED, write=WIG, read_half_open=True, write_half_open=True, rounding=True, cached=True)
        cluster2 = Cluster(read=BED, write=WIG, read_half_open=True, write_half_open=True, rounding=True, cached=True)
        cluster3 = Cluster(read=BED, write=WIG, read_half_open=True, write_half_open=True, rounding=True, cached=True)
        result = Cluster(read=BED, write=WIG, read_half_open=True, write_half_open=True, rounding=True)
        extension = 130
        result.read_line('chr1    156     192     id:7043691      1000    +')
        result.extend(extension)
        cluster.read_line('chr1    241     277     id:916714       1000    +')
        cluster.extend(extension)
        result +=cluster
        cluster2.read_line('chr1    241     277     id:916714       1000    +')
        cluster2.extend(extension)
        result +=cluster2
        cluster3.read_line('chr1    241     277     id:6880101      1000    +')
        cluster3.extend(extension)
        result +=cluster3

        self.assertEqual(result.write_line(), 'chr1\t156\t241\t1\nchr1\t241\t286\t4\nchr1\t286\t371\t3\n')