Overview
| Comment: | commands/mtf now uses fibonacci representation when encoding |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
6bd6e6d5c710d341e813e6d542539198 |
| User & Date: | spaskalev on 2015-01-04 12:52:20.159 |
| 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)
}
}
|