38 lines
1.4 KiB
Go
38 lines
1.4 KiB
Go
package files
|
|
|
|
import "testing"
|
|
|
|
func TestChunkSpec(t *testing.T) {
|
|
|
|
var testCases = map[string]ChunkSpec{
|
|
"0": CreateChunkSpec([]bool{false}),
|
|
"0:10": CreateChunkSpec([]bool{false, false, false, false, false, false, false, false, false, false, false}),
|
|
"0:1,3:5,7:9": CreateChunkSpec([]bool{false, false, true, false, false, false, true, false, false, false, true}),
|
|
"": CreateChunkSpec([]bool{true, true, true, true, true, true, true, true, true, true, true}),
|
|
"2,5,8,10": CreateChunkSpec([]bool{true, true, false, true, true, false, true, true, false, true, false}),
|
|
//
|
|
"0,2:10": CreateChunkSpec([]bool{false, true, false, false, false, false, false, false, false, false, false}),
|
|
"0:8,10": CreateChunkSpec([]bool{false, false, false, false, false, false, false, false, false, true, false}),
|
|
"1:9": CreateChunkSpec([]bool{true, false, false, false, false, false, false, false, false, false, true}),
|
|
}
|
|
|
|
for k, v := range testCases {
|
|
if k != v.Serialize() {
|
|
t.Fatalf("got %v but expected %v", v.Serialize(), k)
|
|
}
|
|
t.Logf("%v == %v", k, v.Serialize())
|
|
}
|
|
|
|
for k, v := range testCases {
|
|
if cs, err := Deserialize(k); err != nil {
|
|
t.Fatalf("error deserialized key: %v %v", k, err)
|
|
} else {
|
|
if v.Serialize() != cs.Serialize() {
|
|
t.Fatalf("got %v but expected %v", v.Serialize(), cs.Serialize())
|
|
}
|
|
t.Logf("%v == %v", cs.Serialize(), v.Serialize())
|
|
}
|
|
}
|
|
|
|
}
|