-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTriangle_Test.cpp
More file actions
34 lines (29 loc) · 860 Bytes
/
Triangle_Test.cpp
File metadata and controls
34 lines (29 loc) · 860 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
enum TriangleType{DENGYAO, DENGBIAN, XIE, ERROR}
TriangleType triangle(int a, int b, int c)
{
if(a<=0||b<=0||c<=0)return ERROR;
if(a==b&&b==c)return DENGBIAN;
if(a==b||b==c||a==c)return DENGYAO;
if(long(a)+long(b)<=c||long(b)+long(c)<=a||long(a)+long(c)<=b)return ERROR;
return XIE;
}
void testtriangle_Normal()
{
assert(triangle(1,1,1)==DENGBIAN);
assert(triangle(2,2,1)==DENGYAO);
assert(triangle(2,3,4)==XIEBIAN);
}
void testtriangle_NegativeZero()
{
assert(triangle(-1,1,1)==ERROR);
assert(triangle(-1,-1,1)==ERROR);
assert(triangle(1,1,-1)==ERROR);
assert(triangle(0,1,1)==ERROR);
}
void testtriangle_Overflow()
{
assert(triangle(INT_MAX, INT_MAX, INT_MAX)==DENGBIAN);
assert(triangle(INT_MAX, 1, INT_MAX-1)==ERROR);
assert(triangle(INT_MAX, 1, INT_MAX)==DENGYAO);
assert(triangle(INT_MAX, 2, INT_MAX-1)==XIE);
}