stabilizaiton work - projects rework for maintenanceability and ui livening
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using Xunit;
|
||||
|
||||
namespace StellaOps.HybridLogicalClock.Tests;
|
||||
|
||||
public partial class HlcTimestampTests
|
||||
{
|
||||
[Fact]
|
||||
public void CompareTo_SamePhysicalTimeAndCounter_SortsLexicographicallyByNodeId()
|
||||
{
|
||||
var nodeA = new HlcTimestamp
|
||||
{
|
||||
PhysicalTime = BasePhysicalTime,
|
||||
NodeId = "node-a",
|
||||
LogicalCounter = 0
|
||||
};
|
||||
var nodeB = new HlcTimestamp
|
||||
{
|
||||
PhysicalTime = BasePhysicalTime,
|
||||
NodeId = "node-b",
|
||||
LogicalCounter = 0
|
||||
};
|
||||
|
||||
Assert.True(nodeA.CompareTo(nodeB) < 0);
|
||||
Assert.True(nodeB.CompareTo(nodeA) > 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CompareTo_IdenticalTimestamps_ReturnsZero()
|
||||
{
|
||||
var ts1 = new HlcTimestamp
|
||||
{
|
||||
PhysicalTime = BasePhysicalTime,
|
||||
NodeId = TestNodeId,
|
||||
LogicalCounter = 42
|
||||
};
|
||||
var ts2 = new HlcTimestamp
|
||||
{
|
||||
PhysicalTime = BasePhysicalTime,
|
||||
NodeId = TestNodeId,
|
||||
LogicalCounter = 42
|
||||
};
|
||||
|
||||
Assert.Equal(0, ts1.CompareTo(ts2));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CompareTo_TotalOrdering_IsTransitive()
|
||||
{
|
||||
var a = new HlcTimestamp { PhysicalTime = 100, NodeId = "node", LogicalCounter = 0 };
|
||||
var b = new HlcTimestamp { PhysicalTime = 100, NodeId = "node", LogicalCounter = 1 };
|
||||
var c = new HlcTimestamp { PhysicalTime = 100, NodeId = "node", LogicalCounter = 2 };
|
||||
|
||||
Assert.True(a < b);
|
||||
Assert.True(b < c);
|
||||
Assert.True(a < c);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user