[#0165]feat(leetcode): Init project, add C# solution, unit test and README
This commit is contained in:
56
problems/0165-compare-version-numbers/test/SolutionTests.cs
Normal file
56
problems/0165-compare-version-numbers/test/SolutionTests.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
// LeetCode 165: Compare Version Numbers 單元測試(xUnit)
|
||||
|
||||
using System.Linq;
|
||||
using Xunit;
|
||||
|
||||
public class SolutionTests {
|
||||
private readonly Solution _s = new Solution();
|
||||
|
||||
[Theory]
|
||||
[InlineData("1.01", "1.001", 0)]
|
||||
[InlineData("1.0", "1.0.0", 0)]
|
||||
[InlineData("1.0.0.0", "1", 0)]
|
||||
[InlineData("0.1", "1.1", -1)]
|
||||
[InlineData("1.0.1", "1", 1)]
|
||||
[InlineData("7.5.2.4", "7.5.3", -1)]
|
||||
public void CompareVersion_ReturnsExpectedResult(string version1, string version2, int expected) {
|
||||
var actual = _s.CompareVersion(version1, version2);
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("1.0.1", "1")]
|
||||
[InlineData("3.0.0", "2.9.9.9")]
|
||||
[InlineData("10.4", "10.3.9")]
|
||||
public void CompareVersion_IsAntiSymmetric(string left, string right) {
|
||||
var forward = _s.CompareVersion(left, right);
|
||||
var backward = _s.CompareVersion(right, left);
|
||||
|
||||
Assert.Equal(1, forward);
|
||||
Assert.Equal(-1, backward);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("", "", 0)]
|
||||
[InlineData("", "0", 0)]
|
||||
[InlineData("0.0.0", "", 0)]
|
||||
[InlineData("000", "0", 0)]
|
||||
[InlineData("2147483647", "2147483646", 1)]
|
||||
[InlineData("2147483646", "2147483647", -1)]
|
||||
public void CompareVersion_HandlesBoundaryInputs(string version1, string version2, int expected) {
|
||||
var actual = _s.CompareVersion(version1, version2);
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CompareVersion_LongSequencesDifferAtEnd() {
|
||||
var left = string.Join('.', Enumerable.Repeat("0", 199).Append("1"));
|
||||
var right = string.Join('.', Enumerable.Repeat("0", 200));
|
||||
|
||||
var result = _s.CompareVersion(left, right);
|
||||
|
||||
Assert.Equal(1, result);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user