]> git.sesse.net Git - casparcg/blob - unit-test/tweener_test.cpp
[streaming_consumer] Started the process of retiring ffmpeg_consumer so that streamin...
[casparcg] / unit-test / tweener_test.cpp
1 /*
2 * Copyright (c) 2011 Sveriges Television AB <info@casparcg.com>
3 *
4 * This file is part of CasparCG (www.casparcg.com).
5 *
6 * CasparCG is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CasparCG is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with CasparCG. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * Author: Helge Norberg, helge.norberg@svt.se
20 */
21
22 #include "stdafx.h"
23
24 #include <gtest/gtest.h>
25
26 #include <common/tweener.h>
27
28 namespace caspar {
29
30 class TweenerTest : public ::testing::TestWithParam<std::wstring>
31 {
32 };
33
34 TEST_P(TweenerTest, StartsAndEndsCloseToDesiredSourceAndTarget)
35 {
36         static const double duration = 15.0;
37         static const double start_value = 3.0;
38         static const double value_delta = 5.0;
39         static const double end_value = start_value + value_delta;
40         static const double REQUIRED_CLOSENESS = 0.01;
41
42         auto name = GetParam();
43         tweener t(name);
44
45         EXPECT_NEAR(
46                 start_value,
47                 t(0, start_value, value_delta, duration),
48                 REQUIRED_CLOSENESS);
49         EXPECT_NEAR(
50                 end_value,
51                 t(duration, start_value, value_delta, duration),
52                 REQUIRED_CLOSENESS);
53 }
54
55 INSTANTIATE_TEST_CASE_P(
56         AllTweeners,
57         TweenerTest,
58         ::testing::ValuesIn(tweener::names()));
59
60 }