@@ -10,8 +10,6 @@ namespace BitFaster.Caching.UnitTests
1010{
1111 public class DurationTests
1212 {
13- public static readonly ulong epsilon = ( ulong ) Duration . FromMilliseconds ( 20 ) . raw ;
14-
1513 private readonly ITestOutputHelper testOutputHelper ;
1614
1715 public DurationTests ( ITestOutputHelper testOutputHelper )
@@ -22,25 +20,26 @@ public DurationTests(ITestOutputHelper testOutputHelper)
2220 [ Fact ]
2321 public void SinceEpoch ( )
2422 {
23+ // epsilon is 1/200 of a second
24+ long epsilon = Stopwatch . Frequency / 200 ;
25+
2526#if NETCOREAPP3_0_OR_GREATER
2627 if ( RuntimeInformation . IsOSPlatform ( OSPlatform . OSX ) )
2728 {
28- Duration . SinceEpoch ( ) . raw . ShouldBe ( Stopwatch . GetTimestamp ( ) ) ;
29+ TimeSpan . FromTicks ( Duration . SinceEpoch ( ) . raw ) . ShouldBe ( TimeSpan . FromTicks ( Stopwatch . GetTimestamp ( ) ) , TimeSpan . FromTicks ( epsilon ) ) ;
2930 }
3031 else
3132 {
32- Duration . SinceEpoch ( ) . raw . ShouldBe ( Environment . TickCount64 ) ;
33+ TimeSpan . FromTicks ( Duration . SinceEpoch ( ) . raw ) . ShouldBe ( TimeSpan . FromTicks ( Environment . TickCount64 ) , TimeSpan . FromTicks ( epsilon ) ) ;
3334 }
3435#else
3536 if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
3637 {
37- Duration . SinceEpoch ( ) . raw . ShouldBe ( Duration . GetTickCount64 ( ) ) ;
38+ TimeSpan . FromTicks ( Duration . SinceEpoch ( ) . raw ) . ShouldBe ( TimeSpan . FromTicks ( Duration . GetTickCount64 ( ) ) , TimeSpan . FromTicks ( epsilon ) ) ;
3839 }
3940 else
4041 {
41- // eps is 1/200 of a second
42- ulong eps = ( ulong ) ( Stopwatch . Frequency / 200 ) ;
43- Duration . SinceEpoch ( ) . raw . ShouldBe ( Stopwatch . GetTimestamp ( ) ) ;
42+ TimeSpan . FromTicks ( Duration . SinceEpoch ( ) . raw ) . ShouldBe ( TimeSpan . FromTicks ( Stopwatch . GetTimestamp ( ) ) , TimeSpan . FromTicks ( epsilon ) ) ;
4443 }
4544#endif
4645 }
0 commit comments