@@ -449,9 +449,7 @@ def test_reference_mismatch() -> None:
449
449
def test_right_primer_before_left_primer () -> None :
450
450
"""Test that an exception is raised if the left primer starts after the right primer ends"""
451
451
pp = PRIMER_PAIR_TEST_CASES [0 ].primer_pair
452
- with pytest .raises (
453
- ValueError , match = "Left primer does not start before the right primer"
454
- ):
452
+ with pytest .raises (ValueError , match = "Left primer does not start before the right primer" ):
455
453
replace (
456
454
pp ,
457
455
left_primer = pp .right_primer ,
@@ -556,3 +554,24 @@ def test_primer_pair_compare(
556
554
assert - expected_by_amplicon_false == PrimerPair .compare (
557
555
this = that , that = this , seq_dict = seq_dict , by_amplicon = False
558
556
)
557
+
558
+
559
+ def test_calculate_amplicon_span () -> None :
560
+ left = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr1" , 50 , 59 ))
561
+ right = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr1" , 150 , 159 ))
562
+ assert PrimerPair .calculate_amplicon_span (left , right ) == Span ("chr1" , 50 , 159 )
563
+
564
+ left = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr2" , 50 , 59 ))
565
+ right = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr3" , 150 , 159 ))
566
+ with pytest .raises (ValueError , match = "different references" ):
567
+ PrimerPair .calculate_amplicon_span (left , right )
568
+
569
+ left = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr1" , 150 , 159 ))
570
+ right = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr1" , 50 , 59 ))
571
+ with pytest .raises (ValueError , match = "Left primer does not start before the right primer" ):
572
+ PrimerPair .calculate_amplicon_span (left , right )
573
+
574
+ left = Oligo (name = "l" , bases = "AACCGGTTAAACGTT" , tm = 60 , penalty = 1 , span = Span ("chr1" , 150 , 164 ))
575
+ right = Oligo (name = "l" , bases = "AACCGGTTAA" , tm = 60 , penalty = 1 , span = Span ("chr1" , 150 , 159 ))
576
+ with pytest .raises (ValueError , match = "Right primer ends before left primer ends" ):
577
+ PrimerPair .calculate_amplicon_span (left , right )
0 commit comments