Skip to content

Commit e261f52

Browse files
committed
Added additional calculation possibilities; Added tests
1 parent a10120a commit e261f52

File tree

3 files changed

+39
-5
lines changed

3 files changed

+39
-5
lines changed

calc/caclulator_test.go

+12
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ func TestAddition(t *testing.T) {
77
assertEqual(t, 4, Addition{}.Calculate(2, 2))
88
}
99

10+
func TestSubtraction(t *testing.T) {
11+
assertEqual(t, 3, Subtraction{}.Calculate(5, 2))
12+
assertEqual(t, 0, Subtraction{}.Calculate(2, 2))
13+
}
14+
func TestMultiplication(t *testing.T) {
15+
assertEqual(t, 4, Multiplication{}.Calculate(2, 2))
16+
assertEqual(t, 3, Multiplication{}.Calculate(1, 3))
17+
}
18+
func TestDivision(t *testing.T) {
19+
assertEqual(t, 1, Division{}.Calculate(2, 2))
20+
}
21+
1022
func assertEqual(t *testing.T, expected, actual any) {
1123
if actual != expected {
1224
t.Errorf("Expected: %v -> Actual: %v", expected, actual)

calc/calculator.go

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package calc
22

3-
type Calculator interface{ Calculate(a, b int) int }
3+
func (Addition) Calculate(a, b int) int {
4+
return a + b
5+
}
46

5-
type Addition struct {
6-
calculator Calculator
7+
func (Subtraction) Calculate(a, b int) int {
8+
return a - b
79
}
810

9-
func (Addition) Calculate(a, b int) int {
10-
return a + b
11+
func (Multiplication) Calculate(a, b int) int {
12+
return a * b
13+
}
14+
15+
func (Division) Calculate(a, b int) int {
16+
return a / b
1117
}

calc/types.go

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package calc
2+
3+
type Calculator interface{ Calculate(a, b int) int }
4+
5+
type Addition struct {
6+
calculator Calculator
7+
}
8+
type Subtraction struct {
9+
calculator Calculator
10+
}
11+
type Multiplication struct {
12+
calculator Calculator
13+
}
14+
type Division struct {
15+
calculator Calculator
16+
}

0 commit comments

Comments
 (0)