diff --git a/logic/init.lua b/logic/init.lua index 1313152..a85369f 100644 --- a/logic/init.lua +++ b/logic/init.lua @@ -10,7 +10,11 @@ function EvensHandValidator.isValidCardRanks(cardRanksFromHand) return false end - local validCardRanks = {'2', '4', '6', '8', '10'} + -- Card values in Balatro use 'T' to denote Ten. The validator previously + -- expected the literal string '10', which meant actual hands containing a + -- ten would fail validation. Align with the game's representation by using + -- 'T' instead of '10'. + local validCardRanks = {'2', '4', '6', '8', 'T'} local uniqueCardRanks = {} local uniqueCardRanksCounted = 0 diff --git a/my_test_suite.lua b/my_test_suite.lua index db57d90..b31e403 100644 --- a/my_test_suite.lua +++ b/my_test_suite.lua @@ -4,15 +4,15 @@ local Utils = require('utils') local EvensHandValidator = require('logic') function testIsValidCardRanksFromStrictEvensHandShouldBeTrue() - lu.assertIsTrue(EvensHandValidator.isValidCardRanks({'2', '10', '8', '6', '4'}), nil) + lu.assertIsTrue(EvensHandValidator.isValidCardRanks({'2', 'T', '8', '6', '4'}), nil) end function testIsValidCardRanksForEvensHandCardWithAThreeShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'3', '10', '8', '6', '4'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'3', 'T', '8', '6', '4'}), nil) end function testIsValidCardRanksWithEvensHandCardWithAJackShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'J', '10', '8', '6', '4'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'J', 'T', '8', '6', '4'}), nil) end @@ -21,19 +21,19 @@ function testIsValidCardRanksWithEvensHandCardWithoutAnyEvenCardsShouldBeFalse() end function testIsValidCardRanksWithNonEvensHandCardShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'3', '10', '8', '6', '4'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'3', 'T', '8', '6', '4'}), nil) end function testIsValidCardRanksFromEvensHandWithFourCardsShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'2', '10', '8', '4'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'2', 'T', '8', '4'}), nil) end function testIsValidCardRanksFromEvensHandWithDuplicateIncompleteSetOfCardsShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'10', '10', '8', '4'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'T', 'T', '8', '4'}), nil) end function testIsValidCardRanksFromEvensHandWithDuplicateYetCorrectCardRanksShouldBeFalse() - lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'10', '10', '8', '4', '2'}), nil) + lu.assertIsFalse(EvensHandValidator.isValidCardRanks({'T', 'T', '8', '4', '2'}), nil) end os.exit( lu.LuaUnit.run() ) \ No newline at end of file