From f9355c6cece1b4b42ff79d7d8ccad3b9ad55c247 Mon Sep 17 00:00:00 2001 From: Anna Rose Wiggins Date: Fri, 8 Aug 2025 18:21:04 -0400 Subject: [PATCH] Fix tests. --- internal/config/make_rule_targets_test.go | 160 +++++++++++----------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/internal/config/make_rule_targets_test.go b/internal/config/make_rule_targets_test.go index 1c5b33f..7ee8fb8 100644 --- a/internal/config/make_rule_targets_test.go +++ b/internal/config/make_rule_targets_test.go @@ -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) })