mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Added some unit tests for TimeCode
This commit is contained in:
parent
f60f18ec19
commit
c93b179030
@ -14,7 +14,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
{
|
||||
get
|
||||
{
|
||||
return _totalMilliseconds == MaxTime.TotalMilliseconds;
|
||||
return Math.Abs(_totalMilliseconds - MaxTime.TotalMilliseconds) < 0.01;
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,8 +180,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
|
||||
if (TotalMilliseconds >= 0)
|
||||
return s;
|
||||
else
|
||||
return "-" + s.Replace("-", string.Empty);
|
||||
return "-" + s.Replace("-", string.Empty);
|
||||
}
|
||||
|
||||
public string ToShortString()
|
||||
@ -197,30 +196,29 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
|
||||
if (TotalMilliseconds >= 0)
|
||||
return s;
|
||||
else
|
||||
return "-" + s.Replace("-", string.Empty);
|
||||
return "-" + s.Replace("-", string.Empty);
|
||||
}
|
||||
|
||||
public string ToShortStringHHMMSSFF()
|
||||
{
|
||||
var ts = TimeSpan;
|
||||
if (ts.Minutes == 0 && ts.Hours == 0)
|
||||
return string.Format("{0:00}:{1:00}", ts.Seconds, SubtitleFormats.SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}", ts.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
if (ts.Hours == 0)
|
||||
return string.Format("{0:00}:{1:00}:{2:00}", ts.Minutes, ts.Seconds, SubtitleFormats.SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormats.SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}:{2:00}", ts.Minutes, ts.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
}
|
||||
|
||||
public string ToHHMMSSFF()
|
||||
{
|
||||
var ts = TimeSpan;
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormats.SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
}
|
||||
|
||||
public string ToHHMMSSPeriodFF()
|
||||
{
|
||||
var ts = TimeSpan;
|
||||
return string.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormats.SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
return string.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, SubtitleFormat.MillisecondsToFramesMaxFrameRate(ts.Milliseconds));
|
||||
}
|
||||
|
||||
}
|
||||
|
124
src/Test/Logic/TimeCodeTest.cs
Normal file
124
src/Test/Logic/TimeCodeTest.cs
Normal file
@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Nikse.SubtitleEdit.Logic;
|
||||
|
||||
namespace Test.Logic
|
||||
{
|
||||
[TestClass]
|
||||
public class TimeCodeTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime1()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(1000);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 2000);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime2()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(-1000);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 0);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime3()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(0, 0, 0, 1000);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 2000);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime4()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(0, 0, 1, 0);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 2000);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime5()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(0, 1, 0, 0);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 60000 + 1000);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime6()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(TimeSpan.FromMilliseconds(1000));
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 2000);
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeAddTime7()
|
||||
{
|
||||
var tc = new TimeCode(1000);
|
||||
tc.AddTime(1000.0);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 2000);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeMilliseconds()
|
||||
{
|
||||
var tc = new TimeCode(1, 2, 3, 4) { Milliseconds = 9 };
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, new TimeSpan(0, 1, 2, 3, 9).TotalMilliseconds);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeSeconds1()
|
||||
{
|
||||
var tc = new TimeCode(1, 2, 3, 4) { Seconds = 9 };
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, new TimeSpan(0, 1, 2, 9, 4).TotalMilliseconds);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeMinutes1()
|
||||
{
|
||||
var tc = new TimeCode(1, 2, 3, 4) { Minutes = 9 };
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, new TimeSpan(0, 1, 9, 3, 4).TotalMilliseconds);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeHours1()
|
||||
{
|
||||
var tc = new TimeCode(1, 2, 3, 4) { Hours = 9 };
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, new TimeSpan(0, 9, 2, 3, 4).TotalMilliseconds);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeParseToMilliseconds1()
|
||||
{
|
||||
var ms = TimeCode.ParseToMilliseconds("01:02:03:999");
|
||||
|
||||
Assert.AreEqual(ms, new TimeSpan(0, 1, 2, 3, 999).TotalMilliseconds);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TimeCodeGetTotalMilliseconds()
|
||||
{
|
||||
var tc = new TimeCode(1, 2, 3, 4);
|
||||
|
||||
Assert.AreEqual(tc.TotalMilliseconds, 3723004);
|
||||
Assert.IsTrue(Math.Abs(tc.TotalMilliseconds - (tc.TotalSeconds * 1000.0)) < 0.001);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -55,6 +55,7 @@
|
||||
<Compile Include="Logic\TransportStream\TransportStreamTest.cs" />
|
||||
<Compile Include="Logic\ParagraphTest.cs" />
|
||||
<Compile Include="Logic\StripableTextTest.cs" />
|
||||
<Compile Include="Logic\TimeCodeTest.cs" />
|
||||
<Compile Include="Logic\VideoFormats\MatroskaTest.cs" />
|
||||
<Compile Include="Logic\VobSub\VobSubTest.cs" />
|
||||
<Compile Include="Logic\Ocr\NOcrTest.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user