1 /*
2     SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar>
3     SPDX-FileCopyrightText: 2010-2018 Mladen Milinkovic <max@smoothware.net>
4 
5     SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #include "timetest.h"
9 #include "core/time.h"
10 
11 #include <QTest>                               // krazy:exclude=c++/includes
12 
13 using namespace SubtitleComposer;
14 
15 void
testConstructors()16 TimeTest::testConstructors()
17 {
18 	Time time;
19 	QVERIFY(time.toMillis() == 0);
20 
21 	Time time6(-55);
22 	QVERIFY(time6.toMillis() == 0);
23 
24 	Time time2(999);
25 	QVERIFY(time2.toMillis() == 999);
26 
27 	Time time3(5, 5, 5, 5);
28 	QVERIFY(time3.toMillis() == 18305005);
29 
30 	Time time4(time2);
31 	QVERIFY(time4.toMillis() == 999);
32 }
33 
34 void
testSetters()35 TimeTest::testSetters()
36 {
37 	Time time;
38 
39 	time.setSecondsTime(555.663);
40 	QVERIFY(time.toMillis() == 555663);
41 
42 	time.setMillisTime(64563);
43 	QVERIFY(time.toMillis() == 64563);
44 
45 	// the following setters should all fail:
46 	QVERIFY(!time.setHours(-5));
47 	QVERIFY(time.toMillis() == 64563);
48 	QVERIFY(!time.setMinutes(60) && !time.setMinutes(-5) && !time.setMinutes(61));
49 	QVERIFY(time.toMillis() == 64563);
50 	QVERIFY(!time.setSeconds(60) && !time.setSeconds(-5) && !time.setSeconds(61));
51 	QVERIFY(time.toMillis() == 64563);
52 	QVERIFY(!time.setMillis(1000) && !time.setMillis(-5) && !time.setMillis(1001));
53 	QVERIFY(time.toMillis() == 64563);
54 
55 	// the following setters should all succeed:
56 	time.setMillisTime(0);
57 	QVERIFY(time.setHours(23));
58 	QVERIFY(time.toMillis() == 82800000);
59 	QVERIFY(time.setMinutes(14));
60 	QVERIFY(time.toMillis() == 83640000);
61 	QVERIFY(time.setSeconds(33));
62 	QVERIFY(time.toMillis() == 83673000);
63 	QVERIFY(time.setMillis(356));
64 	QVERIFY(time.toMillis() == 83673356);
65 
66 	time.setMillisTime(-500);
67 	QVERIFY(time.toMillis() == 0);
68 	time.shift(150);
69 	QVERIFY(time.toMillis() == 150);
70 	time.shift(-130);
71 	QVERIFY(time.toMillis() == 20);
72 }
73 
74 void
testOperators()75 TimeTest::testOperators()
76 {
77 	QVERIFY(Time(3600) == Time(3600));
78 	QVERIFY(Time(3600) == 3600);
79 	QVERIFY(Time(3600) != Time(3601));
80 	QVERIFY(Time(3600) != 3601);
81 	QVERIFY(Time(3600) <= Time(3600));
82 	QVERIFY(Time(3600) <= 3600);
83 	QVERIFY(Time(3600) <= Time(3601));
84 	QVERIFY(Time(3600) <= 3601);
85 	QVERIFY(Time(3600) < Time(3601));
86 	QVERIFY(Time(3600) < 3601);
87 	QVERIFY(Time(3600) >= Time(3600));
88 	QVERIFY(Time(3600) >= 3600);
89 	QVERIFY(Time(3600) >= Time(3599));
90 	QVERIFY(Time(3600) >= 3599);
91 	QVERIFY(Time(3600) > Time(3599));
92 	QVERIFY(Time(3600) > 3599);
93 }
94 
95 QTEST_GUILESS_MAIN(TimeTest);
96