master
ruyu 7 years ago
parent 22377b67b0
commit 5ded611ef8

@ -40,7 +40,7 @@ namespace RedisStudyTest
}
#endregion
#region SetAdd
#region SortedSetAdd
[Fact]
public void SortedAdd_NotKey_Test()
@ -370,6 +370,15 @@ namespace RedisStudyTest
}
#endregion
#region SortedSetScore
[Fact]
public void SortedSetScoreTest()
{
//redisSortedSetStudy.SortedSetScore();
}
#endregion
#region SortedSetRangeByRank
[Fact]
@ -408,166 +417,40 @@ namespace RedisStudyTest
}
#endregion
#region SortedSetLengthByValue
#region SortedSetRangeByRankWithScores
[Fact]
public void SortedSetRangeByValue_NotKey_Test()
public void SortedSetRangeByRankWithScores_NotKey_Test()
{
var mumbers = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, 0, -1);
Assert.Empty(mumbers);
var sortedSetEntries = redisSortedSetStudy.SortedSetRangeByRankWithScores(defaultRedisKey);
Assert.Empty(sortedSetEntries);
}
/// <summary>
/// 排它性参数Exclude设置 测试
/// </summary>
[Fact]
public void SortedSetRangeByValue_Exclude_Test()
public void SortedSetRangeByRankWithScoresTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",0),
new SortedSetEntry("second",0),
new SortedSetEntry("third",0),
new SortedSetEntry("four",0),
new SortedSetEntry("five",0),
new SortedSetEntry("first",1),
new SortedSetEntry("second",2),
new SortedSetEntry("third",3),
new SortedSetEntry("four",4),
new SortedSetEntry("five",5),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//默认Exclude.None [Start,Stop]
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.None);
//firt five four second
Assert.Equal(4, members.Length);
//Exclude.Start (Start,Stop]
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.Start);
//five four second
Assert.Equal(3, members.Length);
//Exclude.Stop [Start,Stop)
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Stop);
Assert.Equal(2, members.Length);
//Exclude.Both (Start,Stop)
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Both);
Assert.Single(members);
}
/// <summary>
/// 分数相同,字典排序,逐字符比较(汉字的比较等待确认)
/// 字典顺序”0”<…<”9”<”A”<…<”Z”<”a”<…<”z”
/// </summary>
[Fact]
public void SortedSetRangeByValueTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
var queryEntries = redisSortedSetStudy.SortedSetRangeByRankWithScores(defaultRedisKey);
Assert.NotEmpty(queryEntries);
for (var i = 0; i < sortedSetEntries.Length; i++)
{
new SortedSetEntry("Andy",0),
new SortedSetEntry("and",0),
new SortedSetEntry("And",0),
new SortedSetEntry("Banana",0),
new SortedSetEntry("color",0),
new SortedSetEntry("query",0),
new SortedSetEntry("remove",0),
new SortedSetEntry("101",0),
new SortedSetEntry("304",0),
new SortedSetEntry("404",0),
new SortedSetEntry("王高峰",0),
new SortedSetEntry("刘山东",0),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//数字排序
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "0", "5");
Assert.Contains("101", members);
Assert.Contains("304", members);
Assert.Contains("404", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "10", "4");
Assert.Contains("101", members);
Assert.Contains("304", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "11", "40");
Assert.Contains("304", members);
//字母排序
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "And", "color");
//And Andy Banana and color
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "color");
//And Andy Banana and color
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "B");
//And Andy 不包括Banana,因为Ba排在B后
Assert.Contains("And", members);
Assert.Contains("Andy", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "Bb");
//And Andy Banana
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
//TODO:汉字排序规则不清楚
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "王", "赵");
//王高峰
Assert.Contains("王高峰", members);
}
/// <summary>
/// 分页测试
/// </summary>
[Fact]
public void SortedSetRangeByValue_Page_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("Andy",0),
new SortedSetEntry("and",0),
new SortedSetEntry("And",0),
new SortedSetEntry("Banana",0),
new SortedSetEntry("color",0),
new SortedSetEntry("query",0),
new SortedSetEntry("remove",0),
new SortedSetEntry("101",0),
new SortedSetEntry("304",0),
new SortedSetEntry("404",0),
new SortedSetEntry("王高峰",0),
new SortedSetEntry("刘山东",0),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//第一页
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 0, 4, CommandFlags.None);
Assert.Equal(4, members.Length);
Assert.Contains("101", members);
Assert.Contains("304", members);
Assert.Contains("404", members);
Assert.Contains("And", members);
Assert.Equal(sortedSetEntries[0], queryEntries[0]);
}
//第2页
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 4, 4, CommandFlags.None);
Assert.Equal(4, members.Length);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
//第3页
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 8, 4, CommandFlags.None);
Assert.Equal(2, members.Length);
Assert.Contains("query", members);
Assert.Contains("remove", members);
queryEntries = redisSortedSetStudy.SortedSetRangeByRankWithScores(defaultRedisKey, 1, -1, Order.Descending, CommandFlags.None);
//four third second first
Assert.Equal(sortedSetEntries[3], queryEntries[0]);
Assert.Equal(sortedSetEntries[2], queryEntries[1]);
Assert.Equal(sortedSetEntries[1], queryEntries[2]);
Assert.Equal(sortedSetEntries[0], queryEntries[3]);
}
#endregion
@ -742,6 +625,340 @@ namespace RedisStudyTest
#endregion
#region SortedSetRangeByScoreWithScores
[Fact]
public void SortedSetRangeByScoreWithScores_NotKey_Test()
{
var members = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey);
Assert.Empty(members);
}
/// <summary>
/// 排它性参数Exclude设置 测试
/// </summary>
[Fact]
public void SortedSetRangeByScoreWithScores_Exclude_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",1),
new SortedSetEntry("second",2),
new SortedSetEntry("third",3),
new SortedSetEntry("four",4),
new SortedSetEntry("five",5),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//默认Exclude.None [Start,Stop]
var queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.None);
Assert.Equal(3, queryEntries.Length);
Assert.Contains("second", queryEntries[0].Element);
Assert.Contains("third", queryEntries[1].Element);
Assert.Contains("four", queryEntries[2].Element);
//Exclude.Start (Start,Stop]
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.Start);
Assert.Equal(2, queryEntries.Length);
Assert.Contains("third", queryEntries[0].Element);
Assert.Contains("four", queryEntries[1].Element);
//Exclude.Stop [Start,Stop)
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.Stop);
Assert.Equal(2, queryEntries.Length);
Assert.Contains("second", queryEntries[0].Element);
Assert.Contains("third", queryEntries[1].Element);
//Exclude.Both (Start,Stop)
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.Both);
Assert.Single(queryEntries);
Assert.Contains("third", queryEntries[0].Element);
}
/// <summary>
/// 排序参数测试
/// </summary>
[Fact]
public void SortedSetRangeByScoreWithScores_Sort_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",1),
new SortedSetEntry("second",2),
new SortedSetEntry("third",3),
new SortedSetEntry("four",4),
new SortedSetEntry("five",5),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//默认:升序
var queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.None, Order.Ascending);
Assert.Equal(3, queryEntries.Length);
Assert.Equal("second", queryEntries[0].Element);
Assert.Equal("third", queryEntries[1].Element);
Assert.Equal("four", queryEntries[2].Element);
//降序
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 2, 4, Exclude.None, Order.Descending);
Assert.Equal(3, queryEntries.Length);
Assert.Equal("four", queryEntries[0].Element);
Assert.Equal("third", queryEntries[1].Element);
Assert.Equal("second", queryEntries[2].Element);
}
/// <summary>
/// 分页测试
/// </summary>
[Fact]
public void SortedSetRangeByScoreWithScores_Page_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("Andy",1),
new SortedSetEntry("and",2),
new SortedSetEntry("And",3),
new SortedSetEntry("Banana",4),
new SortedSetEntry("color",5),
new SortedSetEntry("query",6),
new SortedSetEntry("remove",7),
new SortedSetEntry("101",8),
new SortedSetEntry("304",9),
new SortedSetEntry("404",10),
new SortedSetEntry("王高峰",11),
new SortedSetEntry("刘山东",12),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//第一页
var queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, double.MinValue, double.MaxValue, Exclude.None, Order.Ascending, 0, 4, CommandFlags.None);
Assert.Equal(4, queryEntries.Length);
Assert.Equal(sortedSetEntries[0], queryEntries[0]);
Assert.Equal(sortedSetEntries[1], queryEntries[1]);
Assert.Equal(sortedSetEntries[2], queryEntries[2]);
Assert.Equal(sortedSetEntries[3], queryEntries[3]);
//第2页
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity, Exclude.None, Order.Ascending, 4, 4, CommandFlags.None);
Assert.Equal(4, queryEntries.Length);
Assert.Equal(sortedSetEntries[4], queryEntries[0]);
Assert.Equal(sortedSetEntries[5], queryEntries[1]);
Assert.Equal(sortedSetEntries[6], queryEntries[2]);
Assert.Equal(sortedSetEntries[7], queryEntries[3]);
//第3页
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity, Exclude.None, Order.Ascending, 8, 4, CommandFlags.None);
Assert.Equal(4, queryEntries.Length);
Assert.Equal(sortedSetEntries[8], queryEntries[0]);
Assert.Equal(sortedSetEntries[9], queryEntries[1]);
Assert.Equal(sortedSetEntries[10], queryEntries[2]);
Assert.Equal(sortedSetEntries[11], queryEntries[3]);
}
[Fact]
public void SortedSetRangeByScoreWithScoresTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("Andy",1),
new SortedSetEntry("and",2),
new SortedSetEntry("And",3),
new SortedSetEntry("Banana",4),
new SortedSetEntry("color",5),
new SortedSetEntry("query",6),
new SortedSetEntry("remove",7),
new SortedSetEntry("101",8),
new SortedSetEntry("304",9),
new SortedSetEntry("404",10),
new SortedSetEntry("王高峰",11),
new SortedSetEntry("刘山东",12),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
var queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 1, 5);
Assert.Equal(5, queryEntries.Length);
Assert.Equal("Andy", queryEntries[0].Element);
Assert.Equal("and", queryEntries[1].Element);
Assert.Equal("And", queryEntries[2].Element);
Assert.Equal("Banana", queryEntries[3].Element);
Assert.Equal("color", queryEntries[4].Element);
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, 5, 7, Exclude.None, Order.Descending);
Assert.Equal(3, queryEntries.Length);
Assert.Equal("remove", queryEntries[0].Element);
Assert.Equal("query", queryEntries[1].Element);
Assert.Equal("color", queryEntries[2].Element);
queryEntries = redisSortedSetStudy.SortedSetRangeByScoreWithScores(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity);
Assert.Equal(12, queryEntries.Length);
Assert.Equal("Andy", queryEntries[0].Element);
Assert.Equal("刘山东", queryEntries[11].Element);
}
#endregion
#region SortedSetRangeByValue
[Fact]
public void SortedSetRangeByValue_NotKey_Test()
{
var mumbers = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, 0, -1);
Assert.Empty(mumbers);
}
/// <summary>
/// 排它性参数Exclude设置 测试
/// </summary>
[Fact]
public void SortedSetRangeByValue_Exclude_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",0),
new SortedSetEntry("second",0),
new SortedSetEntry("third",0),
new SortedSetEntry("four",0),
new SortedSetEntry("five",0),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//默认Exclude.None [Start,Stop]
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.None);
//firt five four second
Assert.Equal(4, members.Length);
//Exclude.Start (Start,Stop]
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.Start);
//five four second
Assert.Equal(3, members.Length);
//Exclude.Stop [Start,Stop)
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Stop);
Assert.Equal(2, members.Length);
//Exclude.Both (Start,Stop)
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Both);
Assert.Single(members);
}
/// <summary>
/// 分数相同,字典排序,逐字符比较(汉字的比较等待确认)
/// 字典顺序”0”<…<”9”<”A”<…<”Z”<”a”<…<”z”
/// </summary>
[Fact]
public void SortedSetRangeByValueTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("Andy",0),
new SortedSetEntry("and",0),
new SortedSetEntry("And",0),
new SortedSetEntry("Banana",0),
new SortedSetEntry("color",0),
new SortedSetEntry("query",0),
new SortedSetEntry("remove",0),
new SortedSetEntry("101",0),
new SortedSetEntry("304",0),
new SortedSetEntry("404",0),
new SortedSetEntry("王高峰",0),
new SortedSetEntry("刘山东",0),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//数字排序
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "0", "5");
Assert.Contains("101", members);
Assert.Contains("304", members);
Assert.Contains("404", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "10", "4");
Assert.Contains("101", members);
Assert.Contains("304", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "11", "40");
Assert.Contains("304", members);
//字母排序
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "And", "color");
//And Andy Banana and color
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "color");
//And Andy Banana and color
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "B");
//And Andy 不包括Banana,因为Ba排在B后
Assert.Contains("And", members);
Assert.Contains("Andy", members);
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "Bb");
//And Andy Banana
Assert.Contains("And", members);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
//TODO:汉字排序规则不清楚
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "王", "赵");
//王高峰
Assert.Contains("王高峰", members);
}
/// <summary>
/// 分页测试
/// </summary>
[Fact]
public void SortedSetRangeByValue_Page_Test()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("Andy",0),
new SortedSetEntry("and",0),
new SortedSetEntry("And",0),
new SortedSetEntry("Banana",0),
new SortedSetEntry("color",0),
new SortedSetEntry("query",0),
new SortedSetEntry("remove",0),
new SortedSetEntry("101",0),
new SortedSetEntry("304",0),
new SortedSetEntry("404",0),
new SortedSetEntry("王高峰",0),
new SortedSetEntry("刘山东",0),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
//第一页
var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 0, 4, CommandFlags.None);
Assert.Equal(4, members.Length);
Assert.Contains("101", members);
Assert.Contains("304", members);
Assert.Contains("404", members);
Assert.Contains("And", members);
//第2页
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 4, 4, CommandFlags.None);
Assert.Equal(4, members.Length);
Assert.Contains("Andy", members);
Assert.Contains("Banana", members);
Assert.Contains("and", members);
Assert.Contains("color", members);
//第3页
members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "101", "remove", Exclude.None, 8, 4, CommandFlags.None);
Assert.Equal(2, members.Length);
Assert.Contains("query", members);
Assert.Contains("remove", members);
}
#endregion
#region 清理
public void Dispose()
{

Loading…
Cancel
Save