Minor updates to overlap detection and segment coalescing logic
This commit is contained in:
@@ -115,6 +115,51 @@ func TestApplyHonorsCurrentOrder(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyUsesEffectiveRunEndForReorderedSegments(t *testing.T) {
|
||||
merged := model.MergedTranscript{
|
||||
Segments: []model.Segment{
|
||||
segment("a.json", 0, "Alice", 10, 20, "long"),
|
||||
segment("a.json", 1, "Alice", 1, 2, "early"),
|
||||
segment("a.json", 2, "Alice", 22, 23, "after long"),
|
||||
},
|
||||
}
|
||||
|
||||
got, summary := Apply(merged, 3)
|
||||
if summary.OriginalSegmentsMerged != 3 || summary.CoalescedSegments != 1 {
|
||||
t.Fatalf("summary = %#v", summary)
|
||||
}
|
||||
if len(got.Segments) != 1 {
|
||||
t.Fatalf("segment count = %d, want 1", len(got.Segments))
|
||||
}
|
||||
if got.Segments[0].Text != "long early after long" {
|
||||
t.Fatalf("text = %q", got.Segments[0].Text)
|
||||
}
|
||||
if got.Segments[0].Start != 1 || got.Segments[0].End != 23 {
|
||||
t.Fatalf("bounds = %f-%f, want 1-23", got.Segments[0].Start, got.Segments[0].End)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyDoesNotMergeBeyondEffectiveRunEndGap(t *testing.T) {
|
||||
merged := model.MergedTranscript{
|
||||
Segments: []model.Segment{
|
||||
segment("a.json", 0, "Alice", 10, 20, "long"),
|
||||
segment("a.json", 1, "Alice", 1, 2, "early"),
|
||||
segment("a.json", 2, "Alice", 23.1, 24, "too late"),
|
||||
},
|
||||
}
|
||||
|
||||
got, summary := Apply(merged, 3)
|
||||
if summary.OriginalSegmentsMerged != 2 || summary.CoalescedSegments != 1 {
|
||||
t.Fatalf("summary = %#v", summary)
|
||||
}
|
||||
if len(got.Segments) != 2 {
|
||||
t.Fatalf("segment count = %d, want 2", len(got.Segments))
|
||||
}
|
||||
if got.Segments[0].Text != "long early" || got.Segments[1].Text != "too late" {
|
||||
t.Fatalf("segments = %#v", got.Segments)
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplyDerivedProvenanceForMixedSourcesAndDerivedInputs(t *testing.T) {
|
||||
first := segment("a.json", 0, "Alice", 1, 2, "first")
|
||||
second := model.Segment{
|
||||
|
||||
Reference in New Issue
Block a user