mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-06 00:25:55 +00:00
93 lines
1.5 KiB
Go
93 lines
1.5 KiB
Go
package bench_test
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/pilosa/pilosa/bench"
|
|
)
|
|
|
|
func prettyEncode(data map[string]interface{}) string {
|
|
pretty := bench.Prettify(data)
|
|
jsonString := new(bytes.Buffer)
|
|
enc := json.NewEncoder(jsonString)
|
|
enc.SetIndent("", " ")
|
|
err := enc.Encode(pretty)
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, err)
|
|
}
|
|
|
|
return jsonString.String()
|
|
}
|
|
|
|
func TestPrettifyString(t *testing.T) {
|
|
res := make(map[string]interface{}, 1)
|
|
res["0"] = "foobar"
|
|
pretty := prettyEncode(res)
|
|
|
|
expected := `
|
|
{
|
|
"0": "foobar"
|
|
}
|
|
`[1:]
|
|
|
|
if pretty != expected {
|
|
t.Fatalf("Pretty string doesn't match")
|
|
}
|
|
}
|
|
|
|
func TestPrettifyInt(t *testing.T) {
|
|
res := make(map[string]interface{}, 1)
|
|
res["0"] = 234567
|
|
pretty := prettyEncode(res)
|
|
|
|
expected := `
|
|
{
|
|
"0": 234567
|
|
}
|
|
`[1:]
|
|
|
|
if pretty != expected {
|
|
t.Fatalf("Pretty int doesn't match")
|
|
}
|
|
}
|
|
|
|
func TestPrettifyDuration(t *testing.T) {
|
|
res := make(map[string]interface{}, 1)
|
|
res["0"] = time.Duration(234567)
|
|
pretty := prettyEncode(res)
|
|
|
|
expected := `
|
|
{
|
|
"0": "234.567µs"
|
|
}
|
|
`[1:]
|
|
|
|
if pretty != expected {
|
|
t.Fatalf("Pretty duration doesn't match")
|
|
}
|
|
}
|
|
|
|
func TestPrettifyDurationSlice(t *testing.T) {
|
|
res := make(map[string]interface{}, 1)
|
|
res["0"] = []time.Duration{123, 234567, 34567890}
|
|
pretty := prettyEncode(res)
|
|
|
|
expected := `
|
|
{
|
|
"0": [
|
|
"123ns",
|
|
"234.567µs",
|
|
"34.56789ms"
|
|
]
|
|
}
|
|
`[1:]
|
|
|
|
if pretty != expected {
|
|
t.Fatalf("Pretty duration slice doesn't match")
|
|
}
|
|
}
|