More
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#include "c_Test.h"
|
||||
#include "c_Complex.h"
|
||||
|
||||
TEST_CASE(test_complex_extended_apis) {
|
||||
c_Complex_t a = c_Complex_Make(3.0, 4.0);
|
||||
c_Complex_t b = c_Complex_Make(1.0, -2.0);
|
||||
|
||||
/* 1. 测试属性提取 */
|
||||
ASSERT_DOUBLE_EQ_MSG(25.0, c_Complex_Norm(a), "Norm 运算错误");
|
||||
ASSERT_DOUBLE_EQ_MSG(5.0, c_Complex_Abs(a), "Abs 运算错误");
|
||||
|
||||
/* 2. 测试除法 */
|
||||
c_Complex_t res_div = c_Complex_Div(a, b);
|
||||
/* (3+4i)/(1-2i) = (3+4i)(1+2i)/5 = (-5+10i)/5 = -1 + 2i */
|
||||
ASSERT_DOUBLE_EQ_MSG(-1.0, res_div.real, "复数除法实部错误");
|
||||
ASSERT_DOUBLE_EQ_MSG(2.0, res_div.imag, "复数除法虚部错误");
|
||||
|
||||
/* 3. 测试极坐标转换与欧拉公式基础验证 */
|
||||
/* e^(i*PI) = -1 + 0i */
|
||||
c_Complex_t polar = c_Complex_FromPolar(1.0, 3.141592653589793);
|
||||
ASSERT_TRUE(c_Complex_Equals(polar, c_Complex_Make(-1.0, 0.0), 1e-6));
|
||||
|
||||
/* 4. 测试标量混合运算 */
|
||||
c_Complex_t res_scalar = c_Complex_MulScalar(b, 3.0);
|
||||
ASSERT_DOUBLE_EQ_MSG(3.0, res_scalar.real, "标量乘法实部错误");
|
||||
ASSERT_DOUBLE_EQ_MSG(-6.0, res_scalar.imag, "标量乘法虚部错误");
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
TEST_START(TestSuite);
|
||||
RUN_TEST(test_complex_extended_apis);
|
||||
|
||||
TEST_REPORT();
|
||||
return (g_test_registry.failed_count > 0 ? 1 : 0);
|
||||
}
|
||||
Reference in New Issue
Block a user