@@ -5,57 +5,78 @@ "bytes" "io" "testing" ) -func TestEncoder(t *testing.T) { - var ( - input []byte = []byte{1, 1, 0, 0} - expected []byte = []byte{1, 0, 1, 0} - - buffer bytes.Buffer - encoder io.Writer = Encoder(&buffer) - ) - - count, err := encoder.Write(input) - if count != len(input) { - t.Error("Unexpected write count from encoder", count) - } - if err != nil { - t.Error("Unexpected write error from encoder", err) - } - - output := buffer.Bytes() - - // Diff the output against the expected result - delta := diff.Diff(diff.D{Len1: len(expected), Len2: len(output), - EqualFunc: func(i, j int) bool { return expected[i] == output[j] }}) - if len(delta.Added) > 0 || len(delta.Removed) > 0 { - t.Error("Differences detected ", delta) - } -} - -func TestDecoder(t *testing.T) { - var ( - input []byte = []byte{1, 0, 1, 0} - expected []byte = []byte{1, 1, 0, 0} - output []byte = make([]byte, 4) - - reader *bytes.Reader = bytes.NewReader(input) - decoder io.Reader = Decoder(reader) - ) - - count, err := decoder.Read(output) - if count != len(output) { - t.Error("Unexpected read count from decoder", count) - } - if err != nil { - t.Error("Unexpected read error from decoder", err) - } - - // Diff the output against the expected result - delta := diff.Diff(diff.D{Len1: len(expected), Len2: len(output), - EqualFunc: func(i, j int) bool { return expected[i] == output[j] }}) - if len(delta.Added) > 0 || len(delta.Removed) > 0 { - t.Error("Differences detected ", delta) - } -} +func TestMTF(t *testing.T) { + var ( + data []byte = []byte{1, 1, 0, 0} + + input *bytes.Reader = bytes.NewReader(data) + encoder io.Reader = Encoder(input) + decoder io.Reader = Decoder(encoder) + + output bytes.Buffer + ) + + io.Copy(&output, decoder) + processed := output.Bytes() + + delta := diff.Diff(diff.D{Len1: len(data), Len2: len(processed), + EqualFunc: func(i, j int) bool { return data[i] == processed[j] }}) + if len(delta.Added) > 0 || len(delta.Removed) > 0 { + t.Error("Differences detected ", delta) + } +} + +// func TestEncoder(t *testing.T) { +// var ( +// input []byte = []byte{1, 1, 0, 0} +// expected []byte = []byte{1, 0, 1, 0} + +// buffer bytes.Buffer +// encoder io.Writer = Encoder(&buffer) +// ) + +// count, err := encoder.Write(input) +// if count != len(input) { +// t.Error("Unexpected write count from encoder", count) +// } +// if err != nil { +// t.Error("Unexpected write error from encoder", err) +// } + +// output := buffer.Bytes() + +// // Diff the output against the expected result +// delta := diff.Diff(diff.D{Len1: len(expected), Len2: len(output), +// EqualFunc: func(i, j int) bool { return expected[i] == output[j] }}) +// if len(delta.Added) > 0 || len(delta.Removed) > 0 { +// t.Error("Differences detected ", delta) +// } +// } + +// func TestDecoder(t *testing.T) { +// var ( +// input []byte = []byte{1, 0, 1, 0} +// expected []byte = []byte{1, 1, 0, 0} +// output []byte = make([]byte, 4) + +// reader *bytes.Reader = bytes.NewReader(input) +// decoder io.Reader = Decoder(reader) +// ) + +// count, err := decoder.Read(output) +// if count != len(output) { +// t.Error("Unexpected read count from decoder", count) +// } +// if err != nil { +// t.Error("Unexpected read error from decoder", err) +// } + +// // Diff the output against the expected result +// delta := diff.Diff(diff.D{Len1: len(expected), Len2: len(output), +// EqualFunc: func(i, j int) bool { return expected[i] == output[j] }}) +// if len(delta.Added) > 0 || len(delta.Removed) > 0 { +// t.Error("Differences detected ", delta) +// } +// }