diff --git a/add.go b/add.go new file mode 100644 index 0000000..4c2e091 --- /dev/null +++ b/add.go @@ -0,0 +1,9 @@ +package main + +func addNumbers(a int, b int) int { + return a + b +} + +func addComplexNumbers(a complex128, b complex128) complex128 { + return a + b +} diff --git a/add_test.go b/add_test.go new file mode 100644 index 0000000..891fef3 --- /dev/null +++ b/add_test.go @@ -0,0 +1,26 @@ +package main + +import "testing" + +func TestAddComplexNumbers(t *testing.T) { + testCases := []struct { + name string + a, b complex128 + expected complex128 + }{ + {"add zero", 0, 0, 0}, + {"add positive numbers", 1 + 2i, 3 + 4i, 4 + 6i}, + {"add negative numbers", -1 - 2i, -3 - 4i, -4 - 6i}, + {"add mixed numbers", -1 + 2i, 3 - 4i, 2 - 2i}, + {"add large numbers", 1 + 123456789i, 2 + 987654321i, 3 + 1111111110i}, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + result := addComplexNumbers(tc.a, tc.b) + if result != tc.expected { + t.Errorf("addComplexNumbers(%v, %v) = %v; want %v", tc.a, tc.b, result, tc.expected) + } + }) + } +}