Mcucpp

Форк
0
/
saturated.cpp 
78 строк · 1.4 Кб
1

2
#include <saturated.h>
3
#include <gtest/gtest.h>
4

5
using namespace Mcucpp;
6

7

8
TEST(Saturated, Init)
9
{
10
	Saturated<int> i0;
11
	EXPECT_EQ(0, (int)i0);
12

13
	Saturated<int> i1(100);
14
	EXPECT_EQ(100, (int)i1);
15

16
	Saturated<int> i2(100u);
17
	EXPECT_EQ(100, (int)i2);
18
	
19
	Saturated<unsigned> i3(-100);
20
	EXPECT_EQ(0, (unsigned)i3);
21
	
22
	Saturated<unsigned char> i4(-100);
23
	EXPECT_EQ(0, (int)i4);
24
	
25
	Saturated<signed char> i5(-100);
26
	EXPECT_EQ(-100, (int)i5);
27
	
28
	Saturated<signed char> i6(150);
29
	EXPECT_EQ(127, (int)i6);
30
	
31
	Saturated<signed char> i7(-150);
32
	EXPECT_EQ(-128, (int)i7);
33
}
34

35
TEST(Saturated, PlusSigned)
36
{
37
	Saturated<signed char> i1(100), i2(50), i3;
38
	i3 = i1 + i2;
39
	EXPECT_EQ(127, (int)i3);
40
	i3 = i1 + 20;
41
	EXPECT_EQ(120, (int)i3);
42
	i3 += 255;
43
	EXPECT_EQ(127, (int)i3);
44
	i3 = -128;
45
	i3 += i1;
46
	EXPECT_EQ(-28, (int)i3);
47
	i3 += -120;
48
	EXPECT_EQ(-128, (int)i3);
49
}
50

51
TEST(Saturated, PlusUnsigned)
52
{
53
	Saturated<unsigned char> i1(200), i2(60), i3;
54
	i3 = i1 + i2;
55
	EXPECT_EQ(255, (int)i3);
56
	i3 = i1 + -300;
57
	EXPECT_EQ(0, (int)i3);
58
}
59

60
TEST(Saturated, MinusSigned)
61
{
62
	Saturated<signed char> i1(100), i2(50), i3;
63
	i3 = i1 - i2;
64
	EXPECT_EQ(50, (int)i3);
65
	i3 = i1 - 230;
66
	EXPECT_EQ(-128, (int)i3);
67
	i3 -= -255;
68
	EXPECT_EQ(127, (int)i3);
69
	i3 = -128;
70
	i3 -= -i1;
71
	EXPECT_EQ(-28, (int)i3);
72
	i3 -= 120;
73
	EXPECT_EQ(-128, (int)i3);
74
}
75

76
TEST(Saturated, Multiply)
77
{
78
	
79
}
80

81

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.