Initial commit
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
for-solutions.com
2026-02-06 21:42:17 +01:00
commit 869dd771c9
132 changed files with 5261 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:kalkulator/calculator_logic.dart';
void main() {
late CalculatorLogic calc;
setUp(() {
calc = CalculatorLogic();
});
group('inputDigit', () {
test('starts with 0', () {
expect(calc.display, '0');
});
test('replaces initial 0 with digit', () {
calc.inputDigit('5');
expect(calc.display, '5');
});
test('appends digits', () {
calc.inputDigit('1');
calc.inputDigit('2');
calc.inputDigit('3');
expect(calc.display, '123');
});
});
group('inputDecimal', () {
test('adds decimal point', () {
calc.inputDigit('3');
calc.inputDecimal();
expect(calc.display, '3.');
});
test('ignores second decimal point', () {
calc.inputDigit('3');
calc.inputDecimal();
calc.inputDigit('1');
calc.inputDecimal();
expect(calc.display, '3.1');
});
});
group('addition', () {
test('2 + 3 = 5', () {
calc.inputDigit('2');
calc.inputOperator('+');
calc.inputDigit('3');
calc.calculate();
expect(calc.display, '5');
});
});
group('subtraction', () {
test('9 - 4 = 5', () {
calc.inputDigit('9');
calc.inputOperator('-');
calc.inputDigit('4');
calc.calculate();
expect(calc.display, '5');
});
});
group('multiplication', () {
test('6 * 7 = 42', () {
calc.inputDigit('6');
calc.inputOperator('*');
calc.inputDigit('7');
calc.calculate();
expect(calc.display, '42');
});
});
group('division', () {
test('8 / 2 = 4', () {
calc.inputDigit('8');
calc.inputOperator('/');
calc.inputDigit('2');
calc.calculate();
expect(calc.display, '4');
});
test('division by zero returns Infinity', () {
calc.inputDigit('5');
calc.inputOperator('/');
calc.inputDigit('0');
calc.calculate();
expect(calc.display, 'Infinity');
});
test('decimal result: 7 / 2 = 3.5', () {
calc.inputDigit('7');
calc.inputOperator('/');
calc.inputDigit('2');
calc.calculate();
expect(calc.display, '3.5');
});
});
group('chained operations', () {
test('2 + 3 + 4 = 9', () {
calc.inputDigit('2');
calc.inputOperator('+');
calc.inputDigit('3');
calc.inputOperator('+');
expect(calc.display, '5');
calc.inputDigit('4');
calc.calculate();
expect(calc.display, '9');
});
});
group('clear', () {
test('resets to 0', () {
calc.inputDigit('5');
calc.inputOperator('+');
calc.inputDigit('3');
calc.clear();
expect(calc.display, '0');
});
});
group('toggleSign', () {
test('positive to negative', () {
calc.inputDigit('7');
calc.toggleSign();
expect(calc.display, '-7');
});
test('negative to positive', () {
calc.inputDigit('7');
calc.toggleSign();
calc.toggleSign();
expect(calc.display, '7');
});
});
group('percent', () {
test('50 percent = 0.5', () {
calc.inputDigit('5');
calc.inputDigit('0');
calc.percent();
expect(calc.display, '0.5');
});
});
}