Files
mayhem-party/src/device/input/input_exported_test.go
2023-03-25 10:58:13 -06:00

91 lines
1.8 KiB
Go

package input_test
import (
"context"
"mayhem-party/src/device/input"
"mayhem-party/src/device/input/raw"
"mayhem-party/src/device/input/wrap"
"os"
"path"
"testing"
)
func TestNew(t *testing.T) {
r := input.New(context.Background())
for i := 0; i < 15; i++ {
batch := r.Read()
for _, got := range batch {
t.Logf("[%d] %c:%v", i, got.Char, got.Down)
}
}
}
func TestNewRemapped(t *testing.T) {
d := t.TempDir()
remap := path.Join(d, "remap")
if err := os.WriteFile(remap, []byte(`{"a":"b"}`), os.ModePerm); err != nil {
t.Fatal(err)
}
rand := path.Join(d, "rand")
if err := os.WriteFile(rand, []byte(`{"a":1}`), os.ModePerm); err != nil {
t.Fatal(err)
}
wrap.FlagRemapFile = remap
raw.FlagRawRandomWeightFile = rand
t.Cleanup(func() {
wrap.FlagRemapFile = ""
raw.FlagRawRandomWeightFile = ""
})
r := input.New(context.Background())
for i := 0; i < 15; i++ {
batch := r.Read()
for j := range batch {
if batch[j].Char != 'b' {
t.Errorf("%c", batch[j].Char)
}
t.Logf("[%d][%d] %c|%v", i, j, batch[j].Char, batch[j].Down)
}
}
}
func TestNewBuffered(t *testing.T) {
wrap.FlagBuffered = true
t.Cleanup(func() {
wrap.FlagBuffered = false
})
r := input.New(context.Background())
for i := 0; i < 15; i++ {
batch := r.Read()
for j := range batch {
t.Logf("[%d][%d] %c|%v", i, j, batch[j].Char, batch[j].Down)
}
}
}
func TestNewRandomWeightFile(t *testing.T) {
d := t.TempDir()
p := path.Join(d, "f")
if err := os.WriteFile(p, []byte(`{"a":1}`), os.ModePerm); err != nil {
t.Fatal(err)
}
raw.FlagRawRandomWeightFile = p
t.Cleanup(func() {
raw.FlagRawRandomWeightFile = ""
})
r := input.New(context.Background())
for i := 0; i < 15; i++ {
batch := r.Read()
for _, got := range batch {
if got.Char != 'a' {
t.Error(got)
}
}
}
}