Fix tests.

This commit is contained in:
Anna Rose Wiggins 2025-08-08 18:21:04 -04:00
parent 74f49c0dc6
commit f9355c6cec

View file

@ -1,6 +1,7 @@
package config
import (
"fmt"
"testing"
"github.com/holoplot/go-evdev"
@ -91,36 +92,35 @@ func (t *MakeRuleTargetsTests) TestMakeRuleTargetButton() {
}
func (t *MakeRuleTargetsTests) TestMakeRuleTargetAxis() {
config := RuleTargetConfigAxis{Device: "test"}
codeTestCases := []struct {
input string
output evdev.EvCode
}{
{"ABS_X", evdev.ABS_X},
{"0x01", evdev.ABS_Y},
{"x", evdev.ABS_X},
}
t.Run("Standard code", func() {
config.Axis = "ABS_X"
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(evdev.ABS_X, rule.Axis)
})
for _, tc := range codeTestCases {
t.Run(fmt.Sprintf("KeyCode %s", tc.input), func() {
config := RuleTargetConfigAxis{Device: "test"}
config.Axis = tc.input
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(tc.output, rule.Axis)
t.Run("Hex code", func() {
config.Axis = "0x01"
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(evdev.ABS_Y, rule.Axis)
})
t.Run("Un-prefixed code", func() {
config.Axis = "x"
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(evdev.ABS_X, rule.Axis)
})
})
}
t.Run("Invalid code", func() {
config := RuleTargetConfigAxis{Device: "test"}
config.Axis = "foo"
_, err := makeRuleTargetAxis(config, t.devs)
t.NotNil(err)
})
t.Run("Invalid deadzone", func() {
config := RuleTargetConfigAxis{Device: "test"}
config.Axis = "x"
config.DeadzoneEnd = 100
config.DeadzoneStart = 1000
@ -128,78 +128,78 @@ func (t *MakeRuleTargetsTests) TestMakeRuleTargetAxis() {
t.NotNil(err)
})
t.Run("Deadzone center/size", func() {
config.Axis = "x"
config.DeadzoneCenter = 5000
config.DeadzoneSize = 1000
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(4500, rule.DeadzoneStart)
t.EqualValues(5500, rule.DeadzoneEnd)
})
relDeadzoneTestCases := []struct {
inCenter int32
inSize int32
outStart int32
outEnd int32
}{
{5000, 1000, 4500, 5500},
{0, 500, 0, 500},
{10000, 500, 9500, 10000},
}
t.Run("Deadzone center/size lower boundary", func() {
config.Axis = "x"
config.DeadzoneCenter = 0
config.DeadzoneSize = 500
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(0, rule.DeadzoneStart)
t.EqualValues(500, rule.DeadzoneEnd)
})
for _, tc := range relDeadzoneTestCases {
t.Run(fmt.Sprintf("Relative Deadzone %d +- %d", tc.inCenter, tc.inSize), func() {
config := RuleTargetConfigAxis{
Device: "test",
Axis: "x",
DeadzoneCenter: tc.inCenter,
DeadzoneSize: tc.inSize,
}
rule, err := makeRuleTargetAxis(config, t.devs)
t.Run("Deadzone center/size upper boundary", func() {
config.Axis = "x"
config.DeadzoneCenter = 10000
config.DeadzoneSize = 500
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(9500, rule.DeadzoneStart)
t.EqualValues(10000, rule.DeadzoneEnd)
})
t.Nil(err)
t.Equal(tc.outStart, rule.DeadzoneStart)
t.Equal(tc.outEnd, rule.DeadzoneEnd)
})
}
t.Run("Deadzone center/size invalid center", func() {
config.Axis = "x"
config.DeadzoneCenter = 20000
config.DeadzoneSize = 500
config := RuleTargetConfigAxis{
Device: "test",
Axis: "x",
DeadzoneCenter: 20000,
DeadzoneSize: 500,
}
_, err := makeRuleTargetAxis(config, t.devs)
t.NotNil(err)
})
t.Run("Deadzone center/percent", func() {
config.Axis = "x"
config.DeadzoneCenter = 5000
config.DeadzoneSizePercent = 10
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(4500, rule.DeadzoneStart)
t.EqualValues(5500, rule.DeadzoneEnd)
})
relDeadzonePercentTestCases := []struct {
inCenter int32
inSizePercent int32
outStart int32
outEnd int32
}{
{5000, 10, 4500, 5500},
{0, 10, 0, 1000},
{10000, 10, 9000, 10000},
}
t.Run("Deadzone center/percent lower boundary", func() {
config.Axis = "x"
config.DeadzoneCenter = 0
config.DeadzoneSizePercent = 10
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(0, rule.DeadzoneStart)
t.EqualValues(1000, rule.DeadzoneEnd)
})
for _, tc := range relDeadzonePercentTestCases {
t.Run(fmt.Sprintf("Relative percent deadzone %d +- %d%%", tc.inCenter, tc.inSizePercent), func() {
config := RuleTargetConfigAxis{
Device: "test",
Axis: "x",
DeadzoneCenter: tc.inCenter,
DeadzoneSizePercent: tc.inSizePercent,
}
rule, err := makeRuleTargetAxis(config, t.devs)
t.Run("Deadzone center/percent upper boundary", func() {
config.Axis = "x"
config.DeadzoneCenter = 10000
config.DeadzoneSizePercent = 10
rule, err := makeRuleTargetAxis(config, t.devs)
t.Nil(err)
t.EqualValues(9000, rule.DeadzoneStart)
t.EqualValues(10000, rule.DeadzoneEnd)
})
t.Nil(err)
t.Equal(tc.outStart, rule.DeadzoneStart)
t.Equal(tc.outEnd, rule.DeadzoneEnd)
})
}
t.Run("Deadzone center/percent invalid center", func() {
config.Axis = "x"
config.DeadzoneCenter = 20000
config.DeadzoneSizePercent = 10
config := RuleTargetConfigAxis{
Device: "test",
Axis: "x",
DeadzoneCenter: 20000,
DeadzoneSizePercent: 10,
}
_, err := makeRuleTargetAxis(config, t.devs)
t.NotNil(err)
})