MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/xstudio / TEST

Function TEST

src/timeline/test/track_test.cpp:17–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15using namespace xstudio::media;
16
17TEST(TrackTest, Test) {
18 Track t("Track", MediaType::MT_IMAGE);
19
20 EXPECT_EQ(t.item().uuid(), t.uuid());
21 EXPECT_EQ(t.item().item_type(), ItemType::IT_VIDEO_TRACK);
22
23 Track t2(t.serialise());
24 EXPECT_EQ(t2.item().uuid(), t.uuid());
25
26
27 t.children().emplace_back(
28 Gap("Gap", utility::FrameRateDuration(10, timebase::k_flicks_24fps)).item());
29 t.children().emplace_back(
30 Gap("Gap", utility::FrameRateDuration(10, timebase::k_flicks_24fps)).item());
31
32 EXPECT_EQ(sum_trimmed_duration(t.children()), timebase::k_flicks_24fps * 20);
33 t.refresh_item();
34 EXPECT_EQ(t.item().trimmed_range().duration(), timebase::k_flicks_24fps * 20);
35
36 auto iaf = t.item().item_at_frame(0);
37 EXPECT_TRUE(iaf);
38 EXPECT_EQ(iaf->first, t.item().cbegin());
39
40 iaf = t.item().item_at_frame(20);
41 EXPECT_FALSE(iaf);
42
43 iaf = t.item().item_at_frame(9);
44 EXPECT_TRUE(iaf);
45 EXPECT_EQ(iaf->first, t.item().cbegin());
46 EXPECT_EQ(iaf->second, 9);
47
48 iaf = t.item().item_at_frame(10);
49 EXPECT_TRUE(iaf);
50 EXPECT_EQ(iaf->first, std::next(t.item().cbegin(), 1));
51 EXPECT_EQ(iaf->second, 0);
52
53 EXPECT_EQ(t.item().frame_at_index(0), t.item().trimmed_frame_start().frames());
54 EXPECT_EQ(t.item().frame_at_index(1), t.item().trimmed_frame_start().frames() + 10);
55 EXPECT_EQ(t.item().frame_at_index(2), t.item().trimmed_frame_start().frames() + 20);
56 EXPECT_EQ(t.item().frame_at_index(3), t.item().trimmed_frame_start().frames() + 20);
57
58 EXPECT_EQ(t.item().frame_at_index(0, 1), t.item().trimmed_frame_start().frames() + 1);
59}
60
61std::pair<JsonStore, JsonStore> doMoveTest(Track &t, int start, int count, int before) {
62 auto sit = std::next(t.item().begin(), start);

Callers

nothing calls this directly

Calls 15

sum_trimmed_durationFunction · 0.85
doMoveTestFunction · 0.85
itemMethod · 0.80
item_typeMethod · 0.80
trimmed_frame_startMethod · 0.80
push_backMethod · 0.80
boxMethod · 0.80
item_at_indexMethod · 0.80
set_available_rangeMethod · 0.80
refreshMethod · 0.80
resolve_timeMethod · 0.80
GapClass · 0.50

Tested by

no test coverage detected