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  }