mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-21 18:52:36 +01:00
Fix "Brigde gaps" in "Fix common errors" with overlap
This commit is contained in:
parent
2a8956861d
commit
c3c475cd24
@ -540,7 +540,7 @@ namespace Test.FixCommonErrors
|
||||
Assert.AreEqual("…but never could.", target.Subtitle.Paragraphs[0].Text);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void FixCommonOcrErrorsFrenchHardCodedRuleNoChange()
|
||||
{
|
||||
@ -551,7 +551,7 @@ namespace Test.FixCommonErrors
|
||||
Assert.AreEqual("ENCORE UNE VICTIME\r\nDE L'ASSASSIN MYSTERIEUX.", target.Subtitle.Paragraphs[0].Text);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void FixCommonOcrErrorsFrenchHardCodedRuleChange()
|
||||
{
|
||||
@ -3594,7 +3594,7 @@ namespace Test.FixCommonErrors
|
||||
var sub = GetGenericSub();
|
||||
sub.Paragraphs.First().Text = "- Foobar bar zzz).\n- Foo bar Zz";
|
||||
engine.Fix(sub, new EmptyFixCallback());
|
||||
Assert.AreEqual( "- (Foobar bar zzz).\n- Foo bar Zz", sub.Paragraphs.First().Text);
|
||||
Assert.AreEqual("- (Foobar bar zzz).\n- Foo bar Zz", sub.Paragraphs.First().Text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
@ -3604,7 +3604,7 @@ namespace Test.FixCommonErrors
|
||||
var sub = GetGenericSub();
|
||||
sub.Paragraphs.First().Text = "Foobar THIS IS A NOISE)";
|
||||
engine.Fix(sub, new EmptyFixCallback());
|
||||
Assert.AreEqual( "Foobar (THIS IS A NOISE)", sub.Paragraphs.First().Text);
|
||||
Assert.AreEqual("Foobar (THIS IS A NOISE)", sub.Paragraphs.First().Text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
@ -3617,6 +3617,53 @@ namespace Test.FixCommonErrors
|
||||
Assert.AreEqual("- ]...", sub.Paragraphs.First().Text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void FixShortGapsDoNotTouch()
|
||||
{
|
||||
using (var target = GetFixCommonErrorsLib())
|
||||
{
|
||||
_subtitle = new Subtitle();
|
||||
new SubRip().LoadSubtitle(_subtitle, @"1
|
||||
00:01:41,620 --> 00:01:43,477
|
||||
A las 7, practicar por la mañana
|
||||
|
||||
2
|
||||
00:01:43,501 --> 00:01:44,920
|
||||
[Yoyo]
|
||||
|
||||
3
|
||||
00:01:43,500 --> 00:01:45,310
|
||||
con Issa.".SplitToLines(), null);
|
||||
target.Initialize(_subtitle, new SubRip(), System.Text.Encoding.UTF8);
|
||||
new FixShortGaps().Fix(_subtitle, new EmptyFixCallback());
|
||||
Assert.IsTrue(_subtitle.Paragraphs[0].Duration.TotalMilliseconds > 0, "Gap should not be negative");
|
||||
Assert.IsTrue(_subtitle.Paragraphs[1].Duration.TotalMilliseconds > 0, "Gap should not be negative");
|
||||
Assert.IsTrue(_subtitle.Paragraphs[2].Duration.TotalMilliseconds > 0, "Gap should not be negative");
|
||||
}
|
||||
}
|
||||
|
||||
public void FixShortGapsDoFix()
|
||||
{
|
||||
using (var target = GetFixCommonErrorsLib())
|
||||
{
|
||||
_subtitle = new Subtitle();
|
||||
new SubRip().LoadSubtitle(_subtitle, @"1
|
||||
00:01:41,000 --> 00:01:43,990
|
||||
A las 7, practicar por la mañana
|
||||
|
||||
2
|
||||
00:01:44,000 --> 00:01:46,000
|
||||
[Yoyo]".SplitToLines(), null);
|
||||
target.Initialize(_subtitle, new SubRip(), System.Text.Encoding.UTF8);
|
||||
new FixShortGaps().Fix(_subtitle, new EmptyFixCallback());
|
||||
|
||||
var gap = _subtitle.Paragraphs[1].StartTime.TotalMilliseconds -
|
||||
_subtitle.Paragraphs[0].EndTime.TotalMilliseconds;
|
||||
|
||||
Assert.IsTrue(Math.Abs(gap - 24) < 0.001);
|
||||
}
|
||||
}
|
||||
|
||||
private static Subtitle GetGenericSub()
|
||||
{
|
||||
return new Subtitle()
|
||||
|
@ -24,7 +24,7 @@ namespace Nikse.SubtitleEdit.Core.Forms.FixCommonErrors
|
||||
{
|
||||
double gap = next.StartTime.TotalMilliseconds - p.EndTime.TotalMilliseconds;
|
||||
bool allowFix = callbacks.AllowFix(p, fixAction);
|
||||
if (allowFix && gap < minGap)
|
||||
if (allowFix && gap < minGap && gap >= 0)
|
||||
{
|
||||
string oldCurrent = p.ToString();
|
||||
p.EndTime.TotalMilliseconds = next.StartTime.TotalMilliseconds - minGap;
|
||||
|
Loading…
Reference in New Issue
Block a user