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) } } } }