Overview
Comment: | commands/mtf now uses fibonacci representation when encoding |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
6bd6e6d5c710d341e813e6d542539198 |
User & Date: | spaskalev on 2015-01-04 12:52:20 |
Other Links: | manifest | tags |
Context
2015-01-04
| ||
16:45 | Use a lookup table for fibonacci's encoding of bytes. check-in: 9ded78a659 user: spaskalev tags: trunk | |
12:52 | commands/mtf now uses fibonacci representation when encoding check-in: 6bd6e6d5c7 user: spaskalev tags: trunk | |
12:24 | encoding/mtf.Encoder now returns an io.Reader. This allows to encoding in place without allocating buffers. check-in: 470d7e947b user: spaskalev tags: trunk | |
Changes
Modified src/0dev.org/commands/mtf/main.go from [a9b931eec8] to [a0aa5f4298].
1 2 3 4 5 6 | package main import ( mtf "0dev.org/encoding/mtf" iou "0dev.org/ioutil" "flag" | > < | | | | | < > | | > | | < < < < < < < | | < < < | | > | > | > > > | < < < < < < | < | < | | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package main import ( fib "0dev.org/encoding/fibonacci" mtf "0dev.org/encoding/mtf" iou "0dev.org/ioutil" "flag" "io" "os" ) func main() { d := flag.Bool("d", false, "Toggle decode mode.") flag.Parse() var ( input io.Reader = iou.SizedReader(os.Stdin, 4096) output io.Writer = iou.SizedWriter(os.Stdout, 4096) code int ) // Exit handler defer func() { os.Exit(code) }() // Flush the output buffer defer output.Write(nil) if *d { input = mtf.Decoder(fib.Decoder(input)) } else { input = mtf.Encoder(input) // Encode output as fibonacci integers output = fib.Encoder(output) defer output.Write(nil) } if _, err := io.Copy(output, input); err != nil { os.Stderr.WriteString("Error while transforming data.\n" + err.Error()) code = 1 } } |
Modified src/0dev.org/encoding/mtf/mtf_test.go from [8e70ad85db] to [74a3c46eb8].
︙ | ︙ | |||
23 24 25 26 27 28 29 | 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) } } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 23 24 25 26 27 28 29 | 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) } } |