testsortset.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/wangjia184/sortedset"
  5. )
  6. func main(){
  7. sortedset := sortedset.New()
  8. sortedset.AddOrUpdate("a", 89, "Kelly")
  9. sortedset.AddOrUpdate("b", 100, "Staley")
  10. sortedset.AddOrUpdate("c", 100, "Jordon")
  11. sortedset.AddOrUpdate("d", -321, "Park")
  12. sortedset.AddOrUpdate("e", 101, "Albert")
  13. sortedset.AddOrUpdate("f", 99, "Lyman")
  14. sortedset.AddOrUpdate("g", 99, "Singleton")
  15. sortedset.AddOrUpdate("h", 70, "Audrey")
  16. sortedset.AddOrUpdate("e", 99, "ntrnrt")
  17. sortedset.AddOrUpdate("e", 99, "ntrnrt")
  18. sortedset.AddOrUpdate("e", 99, "ntrnrt")
  19. sortedset.AddOrUpdate("e", 99, "ntrnrt")
  20. sortedset.AddOrUpdate("e", 99, "ntrnrt")
  21. sortedset.Remove("b")
  22. all := sortedset.GetByRankRange(-1, 1, false)
  23. fmt.Println("len ==>", len(all) )
  24. node := sortedset.GetByRank(3, false)
  25. if node == nil || node.Key() != "a" {
  26. fmt.Println("GetByRank() does not return expected value `a`")
  27. }
  28. node = sortedset.GetByRank(-3, false)
  29. if node == nil || node.Key() != "f" {
  30. fmt.Println("GetByRank() does not return expected value `f`")
  31. }
  32. // get all nodes since the first one to last one
  33. nodes := sortedset.GetByRankRange(1, -1, false)
  34. checkOrder( nodes, []string{"d", "h", "a", "e", "f", "g", "c"})
  35. }
  36. func checkOrder(nodes []*sortedset.SortedSetNode, expectedOrder []string) {
  37. if len(expectedOrder) != len(nodes) {
  38. fmt.Printf("nodes does not contain %d elements", len(expectedOrder))
  39. }
  40. for i := 0; i < len(expectedOrder); i++ {
  41. if nodes[i].Key() != expectedOrder[i] {
  42. fmt.Printf("nodes[%d] is %q, but the expected key is %q", i, nodes[i].Key(), expectedOrder[i])
  43. }
  44. }
  45. }