xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
test_circle.cc
浏览该文件的文档.
1#include <gtest/gtest.h>
2
4
10TEST(TestCircle, CreateWithDefaultValues) {
11 // 测试默认构造函数
12 auto circle = std::make_unique<xcal::mobject::Circle>();
13 EXPECT_EQ(circle->radius(), 1.0f);
14 EXPECT_EQ(circle->pos().x(), 0.0f);
15 EXPECT_EQ(circle->pos().y(), 0.0f);
16 EXPECT_TRUE(circle->visible());
17}
18
19TEST(TestCircle, CreateWithCustomValues) {
20 // 测试自定义参数构造函数
21 auto circle = std::make_unique<xcal::mobject::Circle>(
22 xcal::property::Position::data_t{2.0f, 3.0f}, 5.0f);
23
24 EXPECT_EQ(circle->radius(), 5.0f);
25 EXPECT_EQ(circle->pos().x(), 2.0f);
26 EXPECT_EQ(circle->pos().y(), 3.0f);
27}
28
29TEST(TestCircle, SetRadius) {
30 // 测试半径设置功能
31 auto circle = std::make_unique<xcal::mobject::Circle>();
32
33 // 初始半径应为默认值
34 EXPECT_EQ(circle->radius(), 1.0f);
35
36 // 设置新半径
37 circle->set_radius(10.0f);
38 EXPECT_EQ(circle->radius(), 10.0f);
39
40 // 设置零半径
41 circle->set_radius(0.0f);
42 EXPECT_EQ(circle->radius(), 0.0f);
43
44 // 设置负半径(应允许,但可能在实际渲染中处理)
45 circle->set_radius(-5.0f);
46 EXPECT_EQ(circle->radius(), -5.0f);
47}
48
49TEST(TestCircle, PositionInheritance) {
50 // 测试从 MObject 继承的位置功能
51 auto circle = std::make_unique<xcal::mobject::Circle>(
52 xcal::property::Position::data_t{7.0f, 8.0f}, 2.0f);
53
54 // 验证位置继承
55 EXPECT_EQ(circle->pos().x(), 7.0f);
56 EXPECT_EQ(circle->pos().y(), 8.0f);
57}
58
59TEST(TestCircle, VisibilityInheritance) {
60 // 测试从 AbsMObject 继承的可见性功能
61 auto circle = std::make_unique<xcal::mobject::Circle>();
62
63 // 初始应为可见
64 EXPECT_TRUE(circle->visible());
65
66 // 设置为不可见
67 circle->visible() = false;
68 EXPECT_FALSE(circle->visible());
69
70 // 重新设置为可见
71 circle->visible() = true;
72 EXPECT_TRUE(circle->visible());
73}
74
75TEST(TestCircle, PropertiesRegistration) {
76 // 测试属性注册功能
77 auto circle = std::make_unique<xcal::mobject::Circle>();
78
79 // 验证属性列表包含半径属性
80 auto& properties = circle->properties();
81 EXPECT_FALSE(properties.empty());
82
83 // 应该至少有一个属性(半径)
84 EXPECT_GE(properties.size(), 1);
85}
Vector class template
Definition vec.hpp:206
TEST(TestCircle, CreateWithDefaultValues)
圆形对象测试套件