github.com/ipld/go-ipld-prime@v0.21.0/storage/sharding/sharding_test.go (about) 1 package sharding 2 3 import ( 4 "fmt" 5 "path" 6 ) 7 8 func printShard(fn func(string, *[]string), key string) { 9 v := make([]string, 0, 4) 10 fn(key, &v) 11 fmt.Printf("%s => %s\n", key, path.Join(v...)) 12 } 13 14 func Example_shard_R133() { 15 printShard(Shard_r133, "abcdefgh") 16 printShard(Shard_r133, "abcdefg") 17 printShard(Shard_r133, "abcdef") 18 printShard(Shard_r133, "abcde") 19 printShard(Shard_r133, "abcd") 20 printShard(Shard_r133, "abc") 21 22 // Output: 23 // abcdefgh => bcd/efg/abcdefgh 24 // abcdefg => abc/def/abcdefg 25 // abcdef => 000/cde/abcdef 26 // abcde => 000/bcd/abcde 27 // abcd => 000/abc/abcd 28 // abc => 000/000/abc 29 30 } 31 32 func Example_shard_r122() { 33 printShard(Shard_r122, "abcdefgh") 34 printShard(Shard_r122, "abcdefg") 35 printShard(Shard_r122, "abcdef") 36 printShard(Shard_r122, "abcde") 37 printShard(Shard_r122, "abcd") 38 printShard(Shard_r122, "abc") 39 40 // Output: 41 // abcdefgh => de/fg/abcdefgh 42 // abcdefg => cd/ef/abcdefg 43 // abcdef => bc/de/abcdef 44 // abcde => ab/cd/abcde 45 // abcd => 00/bc/abcd 46 // abc => 00/ab/abc 47 } 48 49 func Example_shard_r12() { 50 printShard(Shard_r12, "abcde") 51 printShard(Shard_r12, "abcd") 52 printShard(Shard_r12, "abc") 53 printShard(Shard_r12, "ab") 54 55 // Output: 56 // abcde => cd/abcde 57 // abcd => bc/abcd 58 // abc => ab/abc 59 // ab => 00/ab 60 }