mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-07-31 15:58:27 -04:00
* Move all unit tests to Engine/Tests * Fix Margin.EdgeSubtract * Fix Capsule.Contains * EnvironmentVariables.Remove if it's null * Fixed ray trace never returning startedsolid * Fix HistoryList.Navigate on empty list * Fix GameObject.WorldPosition accepting NaNs * Fix flex: initial expanding to the wrong grow/shrink * Translation.TryConvert shouldn't throw on invalid enum strings * Skip sound file tests on machines with no audio device
77 lines
1.7 KiB
C#
77 lines
1.7 KiB
C#
namespace TimeTests;
|
|
|
|
/// <summary>
|
|
/// Time.Update mutates process-global static time state, so this class must
|
|
/// not run in parallel with anything else.
|
|
/// </summary>
|
|
[TestClass]
|
|
[DoNotParallelize]
|
|
public class TimeTest
|
|
{
|
|
|
|
[TestMethod]
|
|
public void TimeUntilBasics()
|
|
{
|
|
Time.Update( 0, 0 );
|
|
|
|
TimeUntil tu = 0;
|
|
|
|
Assert.AreEqual( 0, (float)tu );
|
|
Assert.AreEqual( 0, tu.Relative );
|
|
Assert.AreEqual( 0, tu.Absolute );
|
|
Assert.AreEqual( (float)tu, tu.Relative );
|
|
Assert.IsTrue( tu < 1 );
|
|
Assert.IsTrue( tu >= 0 );
|
|
|
|
tu = 1;
|
|
|
|
Assert.AreEqual( 1, (float)tu );
|
|
Assert.AreEqual( 1, tu.Relative );
|
|
Assert.AreEqual( 1, tu.Absolute );
|
|
Assert.AreEqual( (float)tu, tu.Relative );
|
|
Assert.IsTrue( tu < 2.0f );
|
|
Assert.IsTrue( tu < 2 );
|
|
Assert.IsTrue( tu >= 1.0f );
|
|
Assert.IsTrue( tu >= 1 );
|
|
|
|
Time.Update( 10, 0 );
|
|
|
|
Assert.AreEqual( -9, (float)tu );
|
|
Assert.AreEqual( -9, tu.Relative );
|
|
Assert.AreEqual( 1, tu.Absolute );
|
|
|
|
tu = 5;
|
|
|
|
Assert.AreEqual( 5, (float)tu );
|
|
Assert.AreEqual( 5, tu.Relative );
|
|
Assert.AreEqual( 15, tu.Absolute );
|
|
Assert.IsTrue( tu < 10.0f );
|
|
Assert.IsTrue( tu > 4.0f );
|
|
Assert.IsTrue( tu >= 5.0f );
|
|
Assert.IsTrue( tu >= 5 );
|
|
|
|
Time.Update( 11, 0 );
|
|
|
|
Assert.AreEqual( 4, (float)tu );
|
|
Assert.AreEqual( 4, tu.Relative );
|
|
Assert.AreEqual( 15, tu.Absolute );
|
|
Assert.IsTrue( tu < 5.0f );
|
|
Assert.IsTrue( tu > 3.0f );
|
|
Assert.IsTrue( tu >= 4.0f );
|
|
Assert.IsTrue( tu >= 4 );
|
|
|
|
Time.Update( 16, 0 );
|
|
|
|
Assert.AreEqual( -1, (float)tu );
|
|
Assert.AreEqual( -1, tu.Relative );
|
|
Assert.AreEqual( 15, tu.Absolute );
|
|
Assert.IsTrue( tu < 0 );
|
|
Assert.IsTrue( tu < 0.0f );
|
|
|
|
tu = -1;
|
|
bool finished = tu < 0;
|
|
Assert.IsTrue( finished );
|
|
|
|
}
|
|
}
|