Merge pull request #138 from RocherKong/master

add data result availability checking
This commit is contained in:
lionsoul 2019-12-11 17:20:05 +08:00 committed by GitHub
commit 79a1956245
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 27 additions and 4 deletions

View File

@ -7,7 +7,15 @@ namespace IP2Region.Test.xUnit
public class SearchTest : IDisposable
{
private readonly DbSearcher _search;
public String GetRandomIP()
{
return new Random(Guid.NewGuid().GetHashCode()).Next(0, 255).ToString() + "."
+ new Random(Guid.NewGuid().GetHashCode()).Next(0, 255).ToString() + "."
+ new Random(Guid.NewGuid().GetHashCode()).Next(0, 255).ToString() + "."
+ new Random(Guid.NewGuid().GetHashCode()).Next(0, 255).ToString();
}
public SearchTest()
{
_search = new DbSearcher(Environment.CurrentDirectory + @"\DB\ip2region.db");
@ -15,9 +23,9 @@ namespace IP2Region.Test.xUnit
[Fact]
public void Search_Test()
{
string memResult = _search.MemorySearch("183.192.62.65").Region;
string binarySearchResult = _search.BinarySearch("183.192.62.65").Region;
string binaryTreeSearchResult = _search.BtreeSearch("183.192.62.65").Region;
string memResult = _search.MemorySearch("223.104.246.20").Region;
string binarySearchResult = _search.BinarySearch("223.104.246.20").Region;
string binaryTreeSearchResult = _search.BtreeSearch("223.104.246.20").Region;
Assert.NotNull(memResult);
Assert.NotNull(binarySearchResult);
@ -27,6 +35,21 @@ namespace IP2Region.Test.xUnit
Assert.Equal(binaryTreeSearchResult, memResult);
}
[Fact]
public void Search_Correct_Test()
{
for (int i = 0; i < 1000000; i++)
{
var newIp=GetRandomIP();
string memResult = _search.MemorySearch(newIp).Region;
string binarySearchResult = _search.BinarySearch(newIp).Region;
string binaryTreeSearchResult = _search.BtreeSearch(newIp).Region;
Assert.True(memResult == binarySearchResult && memResult == binaryTreeSearchResult);
}
}
[Fact]
public async Task SearchAsync_Test()
{