Skip to content

Commit

Permalink
test(cxx): add more test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
pplmx committed Sep 9, 2024
1 parent 94165bb commit 652df3f
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 4 deletions.
5 changes: 5 additions & 0 deletions template/cxx/{{cookiecutter.project_slug}}/include/my_lib.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#pragma once

#include <limits>
#include <stdexcept>

int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
double divide(double a, double b);
2 changes: 2 additions & 0 deletions template/cxx/{{cookiecutter.project_slug}}/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,7 @@ int main()
say_hi();
std::cout << "add(1, 2) = " << add(1, 2) << std::endl;
std::cout << "sub(1, 2) = " << sub(1, 2) << std::endl;
std::cout << "mul(1, 2) = " << mul(1, 2) << std::endl;
std::cout << "divide(1, 2) = " << divide(1, 2) << std::endl;
return 0;
}
14 changes: 14 additions & 0 deletions template/cxx/{{cookiecutter.project_slug}}/src/my_lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,17 @@ int sub(const int a, const int b)
{
return a - b;
}

int mul(const int a, const int b)
{
return a * b;
}

double divide(const double a, const double b)
{
if (b == 0.0)
{
throw std::invalid_argument("Division by zero");
}
return a / b;
}
55 changes: 51 additions & 4 deletions template/cxx/{{cookiecutter.project_slug}}/tests/test_my_lib.cpp
Original file line number Diff line number Diff line change
@@ -1,26 +1,73 @@
#include "gtest/gtest.h"
#include "my_lib.h"

TEST(AddTest, PositiveNumbers)
// Group: Add Function Tests
TEST(AddTest, HandlesZeroInputs)
{
EXPECT_EQ(add(0, 0), 0);
}

TEST(AddTest, HandlesPositiveInputs)
{
EXPECT_EQ(add(1, 2), 3);
EXPECT_EQ(add(10, 5), 15);
}

TEST(AddTest, NegativeNumbers)
TEST(AddTest, HandlesNegativeInputs)
{
EXPECT_EQ(add(-1, -2), -3);
EXPECT_EQ(add(-5, 5), 0);
}

TEST(SubTest, PositiveNumbers)
// Group: Subtract Function Tests
TEST(SubtractTest, HandlesZeroInputs)
{
EXPECT_EQ(sub(0, 0), 0);
}

TEST(SubtractTest, HandlesPositiveInputs)
{
EXPECT_EQ(sub(10, 5), 5);
EXPECT_EQ(sub(5, 10), -5);
}

TEST(SubTest, NegativeNumbers)
TEST(SubtractTest, HandlesNegativeInputs)
{
EXPECT_EQ(sub(-10, -5), -5);
EXPECT_EQ(sub(-5, -10), 5);
}

// Group: Multiply Function Tests
TEST(MultiplyTest, HandlesZeroInputs)
{
EXPECT_EQ(mul(0, 0), 0);
}

TEST(MultiplyTest, HandlesPositiveInputs)
{
EXPECT_EQ(mul(2, 3), 6);
EXPECT_EQ(mul(6, 3), 18);
}

TEST(MultiplyTest, HandlesNegativeInputs)
{
EXPECT_EQ(mul(-2, -3), 6);
EXPECT_EQ(mul(-2, 3), -6);
}

// Group: Divide Function Tests
TEST(DivideTest, HandlesZeroDivision)
{
EXPECT_THROW(divide(10.0, 0.0), std::invalid_argument);
}

TEST(DivideTest, HandlesPositiveInputs)
{
EXPECT_NEAR(divide(10.0, 3.0), 3.33333, 1e-5);
EXPECT_NEAR(divide(10.0, 2.0), 5.0, 1e-5);
}

TEST(DivideTest, HandlesNegativeInputs)
{
EXPECT_NEAR(divide(-10.0, 2.0), -5.0, 1e-5);
}

0 comments on commit 652df3f

Please sign in to comment.