ad774b89c8
docs: Document String Calculator Bug Hunt Kata
...
- Add comprehensive String Calculator section to README
- Document Bug Hunt approach: test-driven bug finding
- List all 5 bugs found and fixed with RED-GREEN commits
- Include code examples and usage
- Update comparison table to include all 4 katas
- Add 'What Each Kata Teaches' for String Calculator
- Update progressive learning path to include fourth kata
2026-02-18 13:00:26 +07:00
ab5a97acc8
GREEN: Implement feature to ignore numbers > 1000
...
- Added .where((n) => n <= 1000) filter
- Numbers greater than 1000 now excluded from sum
- Tests pass: '2,1001' returns 2, '1000,1001,2' returns 1002
2026-02-18 12:59:01 +07:00
e8d2b769f3
RED: Test exposing missing feature - ignore numbers > 1000
...
- Test expects '2,1001' to return 2 (1001 ignored)
- Currently returns 1003 (includes all numbers)
- Feature not implemented yet
- Expected: <2>, Actual: <1003>
2026-02-18 12:58:24 +07:00
e0417f0b62
GREEN: Fix custom delimiter bug
...
- Uncommented delimiter extraction line
- Now properly extracts custom delimiter from format '//[delimiter]\n'
- Tests pass: '//;\n1;2' returns 3, '//|\n10|20|30' returns 60
2026-02-18 12:58:09 +07:00
6deaaaa8dc
RED: Test exposing custom delimiter bug
...
- Test expects '//;\n1;2' to return 3
- Currently fails with FormatException
- Custom delimiter extraction is commented out
- Tries to parse '1;2' as single number, fails
2026-02-18 12:57:56 +07:00
073afc0ab6
fix: Introduce real custom delimiter bug
...
- Comment out delimiter extraction line
- Custom delimiter now never gets extracted
- Will fail when testing '//;\n1;2'
2026-02-18 12:57:49 +07:00
0a6da5a651
GREEN: Fix summation loop bug
...
- Changed loop condition from 'i < length - 1' to 'i < length'
- Now includes last element in sum
- Tests pass: '1,2' returns 3, '1,2,3' returns 6
2026-02-18 12:57:05 +07:00
ebaa21ca27
RED: Test exposing comma-delimited summation bug
...
- Test expects '1,2' to return 3
- Currently returns 1 (missing last element)
- Summation loop has off-by-one: for (i < length - 1)
- Expected: <3>, Actual: <1>
- Expected: <6>, Actual: <3>
2026-02-18 12:56:53 +07:00
77d48e790a
GREEN: Fix single number parsing bug
...
- Removed +1 off-by-one error from single number parsing
- Now correctly returns the parsed number
- Tests pass: '5' returns 5, '42' returns 42
2026-02-18 12:56:40 +07:00
d30267bcc6
RED: Test exposing single number parsing bug
...
- Test expects single number '5' to return 5
- Currently returns 6 (off-by-one error)
- Expected: <5>, Actual: <6>
2026-02-18 12:56:28 +07:00
164adf815d
GREEN: Fix empty string bug
...
- Changed return value from 1 to 0 for empty string
- Test now passes: empty string returns 0
2026-02-18 12:56:17 +07:00
e38bac9441
RED: Test exposing empty string bug
...
- Test expects empty string to return 0
- Currently returns 1 instead
- Expected: <0>, Actual: <1>
2026-02-18 12:56:05 +07:00
279c381872
feat: Add buggy String Calculator implementation
...
- Implements basic string calculator with 5 intentional bugs
- Bug 1: Empty string returns 1 instead of 0
- Bug 2: Single number has off-by-one error
- Bug 3: Summation loop misses last element
- Bug 4: Newline delimiter not properly handled
- Bug 5: Custom delimiter parsing broken
- Ready for Bug Hunt Kata with TDD approach
2026-02-18 12:55:51 +07:00
3e737dfef3
Merge pull request GH-3 from gh/gilded-rose
...
gilded rose
2026-02-18 12:47:57 +07:00
d602d302ee
docs: document gilded rose kata
2026-02-18 12:46:12 +07:00
4d436517e7
GREEN: implement conjured items degrading twice as fast
2026-02-18 12:42:42 +07:00
13f6bc231f
RED: add tests for conjured items
2026-02-18 12:41:33 +07:00
c2994ce63c
REFACTOR: extract helper methods and domain constants
2026-02-18 12:39:31 +07:00
7a17790915
REFACTOR: introduce strategy pattern for item types
2026-02-18 12:37:13 +07:00
5655326543
REFACTOR: extract item type methods from nested conditionals
2026-02-18 12:35:02 +07:00
7f05229104
GREEN: add characterization tests for legacy Gilded Rose code
2026-02-18 12:06:26 +07:00
cb38ddcd5d
update readme
2026-02-10 12:48:51 +07:00
561e85217c
Merge pull request GH-2 from gh/bowling-game
...
bowling game
2026-02-10 12:48:01 +07:00
a93a6abb28
REFACTOR: break down the logic into dedicated methods, tests cleaned up
2026-02-10 12:43:42 +07:00
8474b20e85
GREEN: calculate strike
2026-02-10 12:34:55 +07:00
9ca4accd7b
RED: test one strike
2026-02-10 12:33:22 +07:00
7c24567bfa
REFACTOR: extract spare checking logic
2026-02-10 11:55:31 +07:00
b6007c8115
GREEN: store rolls in a list and check for spare
2026-02-10 11:52:49 +07:00
f34c820c65
RED: test one spare
2026-02-10 11:39:05 +07:00
acf96ad482
REFACTOR: tests clean up
2026-02-10 11:36:11 +07:00
b4cdd039ae
GREEN: save score state and add knocked pins on each roll
2026-02-10 11:24:12 +07:00
e4167c03a5
RED: test all ones
2026-02-10 11:22:23 +07:00
9a22a3e5fe
GREEN: score() returns hardcoded 0
2026-02-10 11:21:13 +07:00
1f31a68df5
RED: test gutter game
2026-02-10 11:19:34 +07:00
131c2d4c48
add readme
2026-02-10 10:48:14 +07:00
8c18b21121
Merge pull request GH-1 from gh/roman-numerals-kata
...
roman numerals kata
2026-02-10 09:51:47 +07:00
6e75926f79
REFACTOR: split validation into value object
2026-02-10 09:38:58 +07:00
438221e2d7
GREEN: implement roman numerals contraints
2026-02-10 09:34:43 +07:00
216aa72d39
RED: test roman numerals contraints
2026-02-10 09:33:44 +07:00
5dfc85fc20
REFACTOR: organize tests into groups and add edge cases
2026-02-10 09:31:30 +07:00
5bf2839e33
GREEN: add conversion rules for 400. 500. 900, and 1000
2026-02-10 09:25:07 +07:00
ccfc795ee0
RED: test convert 400 (CD), 500 (D), 900 (CM), 1000 (M)
2026-02-10 09:24:03 +07:00
1b0336edeb
GREEN: add convertion rules for 90 and 100
2026-02-10 09:21:10 +07:00
24cdceaa92
RED: test convert 90 to XC and 100 to C
2026-02-10 09:20:39 +07:00
dc6728bea5
GREEN: add conversion rule for 50
2026-02-10 09:18:47 +07:00
44566369d0
RED: test convert 50 to L
2026-02-10 09:18:11 +07:00
bef6a56d06
GREEN: add coversion rule for 40
2026-02-10 09:16:38 +07:00
e411e38a31
RED: test convert 40 to XL
2026-02-10 09:12:54 +07:00
b12821147d
REFACTOR: apply DRY, remove magic numbers, add conversionRules domain
2026-02-10 09:12:34 +07:00
7eed3f8e2a
GREEN: add roman symbol for 10
2026-02-10 08:50:50 +07:00