#include #include template void COMPLEX_EQ(const nb::Complex& a, const nb::Complex& b) { ASSERT_EQ(a.r, b.r); ASSERT_EQ(a.i, b.i); } template void COMPLEX_ALMOST_EQ(const nb::Complex& a, const nb::Complex& b) { ASSERT_FLOAT_EQ(a.r, b.r); ASSERT_FLOAT_EQ(a.i, b.i); } TEST(ComplexNumberTests, TestConstruction) { COMPLEX_ALMOST_EQ(nb::Complex(), nb::Complex(0,0)); COMPLEX_ALMOST_EQ(nb::Complex(5.0), nb::Complex(5, 0)); COMPLEX_ALMOST_EQ(1.5_j, nb::Complex(0.0, 1.5)); } TEST(ComplexNumberTests, TestAdd) { auto x = nb::Complex(1.0) - nb::Complex(2.0, 1.0); ASSERT_FLOAT_EQ(x.r, -1); ASSERT_FLOAT_EQ(x.i, -1); }