tdd-katas/test/string_calculator_test.dart
2026-02-18 14:29:55 +07:00

41 lines
1.2 KiB
Dart

import 'package:tdd_katas/string_calculator.dart';
import 'package:test/test.dart';
void main() {
group('String Calculator - Bug Hunt', () {
late StringCalculator calculator;
setUp(() {
calculator = StringCalculator();
});
test('empty string returns 0', () {
expect(calculator.add(''), equals(0));
});
test('single number returns that number', () {
expect(calculator.add('5'), equals(5));
expect(calculator.add('42'), equals(42));
});
test('two comma-delimited numbers return sum', () {
expect(calculator.add('1,2'), equals(3));
expect(calculator.add('10,20'), equals(30));
});
test('multiple comma-delimited numbers return sum', () {
expect(calculator.add('1,2,3'), equals(6));
expect(calculator.add('5,10,15,20'), equals(50));
});
test('custom delimiter works correctly', () {
expect(calculator.add('//;\n1;2'), equals(3));
expect(calculator.add('//|\n10|20|30'), equals(60));
});
test('numbers greater than 1000 are ignored', () {
expect(calculator.add('2,1001'), equals(2));
expect(calculator.add('1000,1001,2'), equals(1002));
});
});
}