Refactor: use references in channel group unit tests
@dr.sybren recommended this in the review of #127080, to be consistent with the more modern C++ style Blender is trying to adhere to in new code. No functional changes. Pull Request: https://projects.blender.org/blender/blender/pulls/127343
This commit is contained in:
committed by
Nathan Vegdahl
parent
5c259a1bae
commit
0b5e878ae1
@@ -907,129 +907,129 @@ class ChannelBagTest : public testing::Test {
|
||||
|
||||
TEST_F(ChannelBagTest, fcurve_move)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
|
||||
bActionGroup *group0 = channel_bag->channel_group(0);
|
||||
bActionGroup *group1 = channel_bag->channel_group(1);
|
||||
bActionGroup &group0 = *channel_bag->channel_group(0);
|
||||
bActionGroup &group1 = *channel_bag->channel_group(1);
|
||||
|
||||
/* Moving an fcurve to where it already is should be fine. */
|
||||
channel_bag->fcurve_move(*fcu0, 0);
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
channel_bag->fcurve_move(fcu0, 0);
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
/* Move to first. */
|
||||
channel_bag->fcurve_move(*fcu4, 0);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu4->grp);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group1, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu3->grp);
|
||||
channel_bag->fcurve_move(fcu4, 0);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu4.grp);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group1, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu3.grp);
|
||||
|
||||
/* Move to last. */
|
||||
channel_bag->fcurve_move(*fcu1, 4);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu4->grp);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
channel_bag->fcurve_move(fcu1, 4);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu4.grp);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
|
||||
/* Move to middle. */
|
||||
channel_bag->fcurve_move(*fcu4, 2);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu4->grp);
|
||||
EXPECT_EQ(group1, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
channel_bag->fcurve_move(fcu4, 2);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu4.grp);
|
||||
EXPECT_EQ(&group1, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_create)
|
||||
{
|
||||
ASSERT_TRUE(channel_bag->channel_groups().is_empty());
|
||||
|
||||
bActionGroup *group0 = &channel_bag->channel_group_create("Foo");
|
||||
bActionGroup &group0 = channel_bag->channel_group_create("Foo");
|
||||
ASSERT_EQ(channel_bag->channel_groups().size(), 1);
|
||||
EXPECT_EQ(StringRef{group0->name}, StringRef{"Foo"});
|
||||
EXPECT_EQ(group0->fcurve_range_start, 0);
|
||||
EXPECT_EQ(group0->fcurve_range_length, 0);
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(StringRef{group0.name}, StringRef{"Foo"});
|
||||
EXPECT_EQ(group0.fcurve_range_start, 0);
|
||||
EXPECT_EQ(group0.fcurve_range_length, 0);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
|
||||
/* Set for testing purposes. Does not reflect actual fcurves in this test. */
|
||||
group0->fcurve_range_length = 2;
|
||||
group0.fcurve_range_length = 2;
|
||||
|
||||
bActionGroup *group1 = &channel_bag->channel_group_create("Bar");
|
||||
bActionGroup &group1 = channel_bag->channel_group_create("Bar");
|
||||
ASSERT_EQ(channel_bag->channel_groups().size(), 2);
|
||||
EXPECT_EQ(StringRef{group1->name}, StringRef{"Bar"});
|
||||
EXPECT_EQ(group1->fcurve_range_start, 2);
|
||||
EXPECT_EQ(group1->fcurve_range_length, 0);
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(StringRef{group1.name}, StringRef{"Bar"});
|
||||
EXPECT_EQ(group1.fcurve_range_start, 2);
|
||||
EXPECT_EQ(group1.fcurve_range_length, 0);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
|
||||
/* Set for testing purposes. Does not reflect actual fcurves in this test. */
|
||||
group1->fcurve_range_length = 1;
|
||||
group1.fcurve_range_length = 1;
|
||||
|
||||
bActionGroup *group2 = &channel_bag->channel_group_create("Yar");
|
||||
bActionGroup &group2 = channel_bag->channel_group_create("Yar");
|
||||
ASSERT_EQ(channel_bag->channel_groups().size(), 3);
|
||||
EXPECT_EQ(StringRef{group2->name}, StringRef{"Yar"});
|
||||
EXPECT_EQ(group2->fcurve_range_start, 3);
|
||||
EXPECT_EQ(group2->fcurve_range_length, 0);
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(StringRef{group2.name}, StringRef{"Yar"});
|
||||
EXPECT_EQ(group2.fcurve_range_start, 3);
|
||||
EXPECT_EQ(group2.fcurve_range_length, 0);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(2));
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_remove)
|
||||
{
|
||||
bActionGroup *group0 = &channel_bag->channel_group_create("Group0");
|
||||
bActionGroup *group1 = &channel_bag->channel_group_create("Group1");
|
||||
bActionGroup *group2 = &channel_bag->channel_group_create("Group2");
|
||||
bActionGroup &group0 = channel_bag->channel_group_create("Group0");
|
||||
bActionGroup &group1 = channel_bag->channel_group_create("Group1");
|
||||
bActionGroup &group2 = channel_bag->channel_group_create("Group2");
|
||||
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "Group0"});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "Group0"});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "Group2"});
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "Group2"});
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "Group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "Group0"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "Group2"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "Group2"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
|
||||
ASSERT_EQ(3, channel_bag->channel_groups().size());
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
@@ -1040,108 +1040,108 @@ TEST_F(ChannelBagTest, channel_group_remove)
|
||||
EXPECT_EQ(false, channel_bag->channel_group_remove(bogus));
|
||||
ASSERT_EQ(3, channel_bag->channel_groups().size());
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group2, fcu2->grp);
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group2, fcu2.grp);
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
/* Removing an empty group shouldn't affect the fcurves at all. */
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(*group1));
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(group1));
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group2, fcu2->grp);
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group2, fcu2.grp);
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
/* Removing a group that's not at the end of the group array should move its
|
||||
* fcurves to be just after the grouped fcurves. */
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(*group0));
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(group0));
|
||||
ASSERT_EQ(1, channel_bag->channel_groups().size());
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
EXPECT_EQ(group2, fcu2->grp);
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
EXPECT_EQ(&group2, fcu2.grp);
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
/* Removing a group at the end of the group array shouldn't move its
|
||||
* fcurves. */
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(*group2));
|
||||
EXPECT_EQ(true, channel_bag->channel_group_remove(group2));
|
||||
ASSERT_EQ(0, channel_bag->channel_groups().size());
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
EXPECT_EQ(nullptr, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
EXPECT_EQ(nullptr, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_find)
|
||||
{
|
||||
bActionGroup *group0a = &channel_bag->channel_group_create("Foo");
|
||||
bActionGroup *group1a = &channel_bag->channel_group_create("Bar");
|
||||
bActionGroup *group2a = &channel_bag->channel_group_create("Yar");
|
||||
bActionGroup &group0a = channel_bag->channel_group_create("Foo");
|
||||
bActionGroup &group1a = channel_bag->channel_group_create("Bar");
|
||||
bActionGroup &group2a = channel_bag->channel_group_create("Yar");
|
||||
|
||||
bActionGroup *group0b = channel_bag->channel_group_find("Foo");
|
||||
bActionGroup *group1b = channel_bag->channel_group_find("Bar");
|
||||
bActionGroup *group2b = channel_bag->channel_group_find("Yar");
|
||||
|
||||
EXPECT_EQ(group0a, group0b);
|
||||
EXPECT_EQ(group1a, group1b);
|
||||
EXPECT_EQ(group2a, group2b);
|
||||
EXPECT_EQ(&group0a, group0b);
|
||||
EXPECT_EQ(&group1a, group1b);
|
||||
EXPECT_EQ(&group2a, group2b);
|
||||
|
||||
EXPECT_EQ(nullptr, channel_bag->channel_group_find("Wat"));
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_ensure)
|
||||
{
|
||||
bActionGroup *group0 = &channel_bag->channel_group_create("Foo");
|
||||
bActionGroup *group1 = &channel_bag->channel_group_create("Bar");
|
||||
bActionGroup &group0 = channel_bag->channel_group_create("Foo");
|
||||
bActionGroup &group1 = channel_bag->channel_group_create("Bar");
|
||||
EXPECT_EQ(channel_bag->channel_groups().size(), 2);
|
||||
|
||||
EXPECT_EQ(group0, &channel_bag->channel_group_ensure("Foo"));
|
||||
EXPECT_EQ(&group0, &channel_bag->channel_group_ensure("Foo"));
|
||||
EXPECT_EQ(channel_bag->channel_groups().size(), 2);
|
||||
|
||||
EXPECT_EQ(group1, &channel_bag->channel_group_ensure("Bar"));
|
||||
EXPECT_EQ(&group1, &channel_bag->channel_group_ensure("Bar"));
|
||||
EXPECT_EQ(channel_bag->channel_groups().size(), 2);
|
||||
|
||||
bActionGroup *group2 = &channel_bag->channel_group_ensure("Yar");
|
||||
bActionGroup &group2 = channel_bag->channel_group_ensure("Yar");
|
||||
ASSERT_EQ(channel_bag->channel_groups().size(), 3);
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(2));
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_fcurve_creation)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, std::nullopt});
|
||||
EXPECT_EQ(1, channel_bag->fcurves().size());
|
||||
EXPECT_TRUE(channel_bag->channel_groups().is_empty());
|
||||
|
||||
@@ -1150,387 +1150,387 @@ TEST_F(ChannelBagTest, channel_group_fcurve_creation)
|
||||
* created if it doesn't already exist. */
|
||||
channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
EXPECT_EQ(1, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_TRUE(channel_bag->channel_groups().is_empty());
|
||||
|
||||
/* Creating a new fcurve with a channel group in the fcurve descriptor should
|
||||
* create the group and put the fcurve in it. This also implies that the
|
||||
* fcurve will be added before any non-grouped fcurves in the array. */
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
ASSERT_EQ(2, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(1, channel_bag->channel_groups().size());
|
||||
bActionGroup *group0 = channel_bag->channel_group(0);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
bActionGroup &group0 = *channel_bag->channel_group(0);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
|
||||
/* Creating a new fcurve with a second channel group in the fcurve descriptor
|
||||
* should create the group and put the fcurve in it. This also implies that
|
||||
* the fcurve will be added before non-grouped fcurves, but after other
|
||||
* grouped ones. */
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
ASSERT_EQ(3, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
bActionGroup *group1 = channel_bag->channel_group(1);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
bActionGroup &group1 = *channel_bag->channel_group(1);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
|
||||
/* Creating a new fcurve with the first channel group again should put it at
|
||||
* the end of that group. */
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group0"});
|
||||
ASSERT_EQ(4, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group0, fcu3->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group0, fcu3.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
|
||||
/* Finally, creating a new fcurve with the second channel group again should
|
||||
* also put it at the end of that group. */
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, "group1"});
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group0, fcu3->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu4->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group0, fcu3.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu4.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_fcurve_removal)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
|
||||
bActionGroup *group0 = channel_bag->channel_group(0);
|
||||
bActionGroup *group1 = channel_bag->channel_group(1);
|
||||
bActionGroup &group0 = *channel_bag->channel_group(0);
|
||||
bActionGroup &group1 = *channel_bag->channel_group(1);
|
||||
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->fcurve_remove(*fcu3);
|
||||
channel_bag->fcurve_remove(fcu3);
|
||||
ASSERT_EQ(4, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->fcurve_remove(*fcu0);
|
||||
channel_bag->fcurve_remove(fcu0);
|
||||
ASSERT_EQ(3, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->fcurve_remove(*fcu1);
|
||||
channel_bag->fcurve_remove(fcu1);
|
||||
ASSERT_EQ(2, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(1, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->fcurve_remove(*fcu4);
|
||||
channel_bag->fcurve_remove(fcu4);
|
||||
ASSERT_EQ(1, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(1, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
|
||||
channel_bag->fcurve_remove(*fcu2);
|
||||
channel_bag->fcurve_remove(fcu2);
|
||||
ASSERT_EQ(0, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(0, channel_bag->channel_groups().size());
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_move)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group2"});
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group2"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(3, channel_bag->channel_groups().size());
|
||||
|
||||
bActionGroup *group0 = channel_bag->channel_group(0);
|
||||
bActionGroup *group1 = channel_bag->channel_group(1);
|
||||
bActionGroup *group2 = channel_bag->channel_group(2);
|
||||
bActionGroup &group0 = *channel_bag->channel_group(0);
|
||||
bActionGroup &group1 = *channel_bag->channel_group(1);
|
||||
bActionGroup &group2 = *channel_bag->channel_group(2);
|
||||
|
||||
channel_bag->channel_group_move(*group0, 2);
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(2, group2->fcurve_range_start);
|
||||
EXPECT_EQ(1, group2->fcurve_range_length);
|
||||
EXPECT_EQ(3, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group1, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
channel_bag->channel_group_move(group0, 2);
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(2, group2.fcurve_range_start);
|
||||
EXPECT_EQ(1, group2.fcurve_range_length);
|
||||
EXPECT_EQ(3, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group1, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->channel_group_move(*group1, 1);
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group2->fcurve_range_start);
|
||||
EXPECT_EQ(1, group2->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(3, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(group1, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
channel_bag->channel_group_move(group1, 1);
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group2.fcurve_range_start);
|
||||
EXPECT_EQ(1, group2.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(3, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(&group1, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
|
||||
channel_bag->channel_group_move(*group0, 0);
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group2->fcurve_range_start);
|
||||
EXPECT_EQ(1, group2->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu0->grp);
|
||||
EXPECT_EQ(group2, fcu3->grp);
|
||||
EXPECT_EQ(group1, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
channel_bag->channel_group_move(group0, 0);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group2, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group2.fcurve_range_start);
|
||||
EXPECT_EQ(1, group2.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu0.grp);
|
||||
EXPECT_EQ(&group2, fcu3.grp);
|
||||
EXPECT_EQ(&group1, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_move_fcurve_into)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, std::nullopt});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, std::nullopt});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, std::nullopt});
|
||||
bActionGroup *group0 = &channel_bag->channel_group_create("group0");
|
||||
bActionGroup *group1 = &channel_bag->channel_group_create("group1");
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, std::nullopt});
|
||||
bActionGroup &group0 = channel_bag->channel_group_create("group0");
|
||||
bActionGroup &group1 = channel_bag->channel_group_create("group1");
|
||||
|
||||
ASSERT_EQ(3, channel_bag->fcurves().size());
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(0, group0->fcurve_range_length);
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(0, group1->fcurve_range_length);
|
||||
EXPECT_EQ(&group0, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(1));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(0, group0.fcurve_range_length);
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(0, group1.fcurve_range_length);
|
||||
|
||||
channel_bag->fcurve_assign_to_channel_group(*fcu2, *group1);
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(0, group0->fcurve_range_length);
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
channel_bag->fcurve_assign_to_channel_group(fcu2, group1);
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(0, group0.fcurve_range_length);
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
|
||||
channel_bag->fcurve_assign_to_channel_group(*fcu1, *group0);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
channel_bag->fcurve_assign_to_channel_group(fcu1, group0);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
|
||||
channel_bag->fcurve_assign_to_channel_group(*fcu0, *group1);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
channel_bag->fcurve_assign_to_channel_group(fcu0, group1);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
|
||||
channel_bag->fcurve_assign_to_channel_group(*fcu0, *group0);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(2, group0->fcurve_range_length);
|
||||
EXPECT_EQ(2, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
channel_bag->fcurve_assign_to_channel_group(fcu0, group0);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(2, group0.fcurve_range_length);
|
||||
EXPECT_EQ(2, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
|
||||
channel_bag->fcurve_assign_to_channel_group(*fcu1, *group1);
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
channel_bag->fcurve_assign_to_channel_group(fcu1, group1);
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
}
|
||||
|
||||
TEST_F(ChannelBagTest, channel_group_fcurve_ungroup)
|
||||
{
|
||||
FCurve *fcu0 = &channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu1 = &channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve *fcu2 = &channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu3 = &channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve *fcu4 = &channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
FCurve &fcu0 = channel_bag->fcurve_ensure(nullptr, {"fcu0", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu1 = channel_bag->fcurve_ensure(nullptr, {"fcu1", 0, std::nullopt, "group0"});
|
||||
FCurve &fcu2 = channel_bag->fcurve_ensure(nullptr, {"fcu2", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu3 = channel_bag->fcurve_ensure(nullptr, {"fcu3", 0, std::nullopt, "group1"});
|
||||
FCurve &fcu4 = channel_bag->fcurve_ensure(nullptr, {"fcu4", 0, std::nullopt, std::nullopt});
|
||||
|
||||
ASSERT_EQ(5, channel_bag->fcurves().size());
|
||||
ASSERT_EQ(2, channel_bag->channel_groups().size());
|
||||
|
||||
bActionGroup *group0 = channel_bag->channel_group(0);
|
||||
bActionGroup *group1 = channel_bag->channel_group(1);
|
||||
bActionGroup &group0 = *channel_bag->channel_group(0);
|
||||
bActionGroup &group1 = *channel_bag->channel_group(1);
|
||||
|
||||
/* Attempting to ungroup an fcurve that's not in the channel bag should fail. */
|
||||
FCurve bogus = {};
|
||||
EXPECT_FALSE(channel_bag->fcurve_ungroup(bogus));
|
||||
|
||||
/* Attempting to ungroup an fcurve that's already ungrouped is fine. */
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(*fcu4));
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(fcu4));
|
||||
|
||||
/* Ungroup each fcurve until all are ungrouped. */
|
||||
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(*fcu0));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(2, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(group1, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(fcu0));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(2, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(&group1, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(*fcu3));
|
||||
EXPECT_EQ(0, group0->fcurve_range_start);
|
||||
EXPECT_EQ(1, group0->fcurve_range_length);
|
||||
EXPECT_EQ(1, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group0, fcu1->grp);
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu3->grp);
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(fcu3));
|
||||
EXPECT_EQ(0, group0.fcurve_range_start);
|
||||
EXPECT_EQ(1, group0.fcurve_range_length);
|
||||
EXPECT_EQ(1, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group0, fcu1.grp);
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu3.grp);
|
||||
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(*fcu1));
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(fcu1));
|
||||
EXPECT_EQ(1, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1->fcurve_range_start);
|
||||
EXPECT_EQ(1, group1->fcurve_range_length);
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(group1, fcu2->grp);
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
EXPECT_EQ(&group1, channel_bag->channel_group(0));
|
||||
EXPECT_EQ(0, group1.fcurve_range_start);
|
||||
EXPECT_EQ(1, group1.fcurve_range_length);
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(&group1, fcu2.grp);
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(*fcu2));
|
||||
EXPECT_TRUE(channel_bag->fcurve_ungroup(fcu2));
|
||||
EXPECT_EQ(0, channel_bag->channel_groups().size());
|
||||
EXPECT_EQ(fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(fcu2, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu4->grp);
|
||||
EXPECT_EQ(nullptr, fcu0->grp);
|
||||
EXPECT_EQ(nullptr, fcu3->grp);
|
||||
EXPECT_EQ(nullptr, fcu1->grp);
|
||||
EXPECT_EQ(nullptr, fcu2->grp);
|
||||
EXPECT_EQ(&fcu4, channel_bag->fcurve(0));
|
||||
EXPECT_EQ(&fcu0, channel_bag->fcurve(1));
|
||||
EXPECT_EQ(&fcu3, channel_bag->fcurve(2));
|
||||
EXPECT_EQ(&fcu1, channel_bag->fcurve(3));
|
||||
EXPECT_EQ(&fcu2, channel_bag->fcurve(4));
|
||||
EXPECT_EQ(nullptr, fcu4.grp);
|
||||
EXPECT_EQ(nullptr, fcu0.grp);
|
||||
EXPECT_EQ(nullptr, fcu3.grp);
|
||||
EXPECT_EQ(nullptr, fcu1.grp);
|
||||
EXPECT_EQ(nullptr, fcu2.grp);
|
||||
}
|
||||
|
||||
} // namespace blender::animrig::tests
|
||||
|
||||
Reference in New Issue
Block a user