Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Unity
提交
9fe750ba
T
Third Party Unity
项目概览
OpenHarmony
/
Third Party Unity
10 个月 前同步成功
通知
29
Star
144
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Unity
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9fe750ba
编写于
7月 21, 2014
作者:
M
Mark VanderVoord
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
finish cleaning up floating point support
added macros for IS_DETERMINATE and IS_NOT_DETERMINATE
上级
a8bd7b5a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
234 addition
and
94 deletion
+234
-94
src/unity.c
src/unity.c
+55
-55
src/unity.h
src/unity.h
+8
-0
src/unity_internals.h
src/unity_internals.h
+20
-35
test/testunity.c
test/testunity.c
+151
-4
未找到文件。
src/unity.c
浏览文件 @
9fe750ba
...
...
@@ -32,6 +32,7 @@ const char* UnityStrNot = "Not ";
const
char
*
UnityStrInf
=
"Infinity"
;
const
char
*
UnityStrNegInf
=
"Negative Infinity"
;
const
char
*
UnityStrNaN
=
"NaN"
;
const
char
*
UnityStrDet
=
"Determinate"
;
#ifndef UNITY_EXCLUDE_FLOAT
// Dividing by these constants produces +/- infinity.
...
...
@@ -621,7 +622,7 @@ void UnityAssertFloatSpecial(const _UF actual,
{
UNITY_SKIP_EXECUTION
;
const
char
*
trait_names
[]
=
{
UnityStrInf
,
UnityStrNegInf
,
UnityStrNaN
};
const
char
*
trait_names
[]
=
{
UnityStrInf
,
UnityStrNegInf
,
UnityStrNaN
,
UnityStrDet
};
_U_SINT
should_be_trait
=
((
_U_SINT
)
style
&
1
);
_U_SINT
is_trait
=
!
should_be_trait
;
_U_SINT
trait_index
=
style
>>
1
;
...
...
@@ -644,6 +645,15 @@ void UnityAssertFloatSpecial(const _UF actual,
case
UNITY_FLOAT_IS_NOT_NAN
:
is_trait
=
(
actual
==
actual
)
?
0
:
1
;
break
;
//A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
case
UNITY_FLOAT_IS_DET
:
case
UNITY_FLOAT_IS_NOT_DET
:
if
(
(
actual
!=
actual
)
||
((
1
.
0
f
/
f_zero
)
==
actual
)
||
((
-
1
.
0
f
/
f_zero
)
==
actual
)
)
is_trait
=
0
;
else
is_trait
=
1
;
break
;
}
if
(
is_trait
!=
should_be_trait
)
...
...
@@ -764,79 +774,69 @@ void UnityAssertDoublesWithin(const _UD delta,
}
//-----------------------------------------------
void
UnityAssertDoubleIsInf
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
)
void
UnityAssertDoubleSpecial
(
const
_UD
actual
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
,
const
UNITY_FLOAT_STYLE_T
style
)
{
UNITY_SKIP_EXECUTION
;
// The rationale for not using 1.0/0.0 is given in UnityAssertFloatIsInf's body.
if
((
1
.
0
/
d_zero
)
!=
actual
)
const
char
*
trait_names
[]
=
{
UnityStrInf
,
UnityStrNegInf
,
UnityStrNaN
,
UnityStrDet
};
_U_SINT
should_be_trait
=
((
_U_SINT
)
style
&
1
);
_U_SINT
is_trait
=
!
should_be_trait
;
_U_SINT
trait_index
=
style
>>
1
;
switch
(
style
)
{
UnityTestResultsFailBegin
(
lineNumber
);
#ifdef UNITY_DOUBLE_VERBOSE
UnityPrint
(
UnityStrExpected
);
UnityPrint
(
UnityStrInf
);
UnityPrint
(
UnityStrWas
);
UnityPrintFloat
((
float
)
actual
);
#else
UnityPrint
(
UnityStrDelta
);
#endif
UnityAddMsgIfSpecified
(
msg
);
UNITY_FAIL_AND_BAIL
;
}
}
//To determine Inf / Neg Inf, we compare to an Inf / Neg Inf value we create on the fly
//We are using a variable to hold the zero value because some compilers complain about dividing by zero otherwise
case
UNITY_FLOAT_IS_INF
:
case
UNITY_FLOAT_IS_NOT_INF
:
is_trait
=
((
1
.
0
/
d_zero
)
==
actual
)
?
1
:
0
;
break
;
case
UNITY_FLOAT_IS_NEG_INF
:
case
UNITY_FLOAT_IS_NOT_NEG_INF
:
is_trait
=
((
-
1
.
0
/
d_zero
)
==
actual
)
?
1
:
0
;
break
;
//-----------------------------------------------
void
UnityAssertDoubleIsNegInf
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
)
{
UNITY_SKIP_EXECUTION
;
//NaN is the only floating point value that does NOT equal itself. Therefore if Actual == Actual, then it is NOT NaN.
case
UNITY_FLOAT_IS_NAN
:
case
UNITY_FLOAT_IS_NOT_NAN
:
is_trait
=
(
actual
==
actual
)
?
0
:
1
;
break
;
// The rationale for not using 1.0/0.0 is given in UnityAssertFloatIsInf's body.
if
((
-
1
.
0
/
d_zero
)
!=
actual
)
{
UnityTestResultsFailBegin
(
lineNumber
);
#ifdef UNITY_DOUBLE_VERBOSE
UnityPrint
(
UnityStrExpected
);
UnityPrint
(
UnityStrNegInf
);
UnityPrint
(
UnityStrWas
);
UnityPrintFloat
((
float
)
actual
);
#else
UnityPrint
(
UnityStrDelta
);
#endif
UnityAddMsgIfSpecified
(
msg
);
UNITY_FAIL_AND_BAIL
;
//A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
case
UNITY_FLOAT_IS_DET
:
case
UNITY_FLOAT_IS_NOT_DET
:
if
(
(
actual
!=
actual
)
||
((
1
.
0
/
d_zero
)
==
actual
)
||
((
-
1
.
0
/
d_zero
)
==
actual
)
)
is_trait
=
0
;
else
is_trait
=
1
;
break
;
}
}
//-----------------------------------------------
void
UnityAssertDoubleIsNaN
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
)
{
UNITY_SKIP_EXECUTION
;
if
(
actual
==
actual
)
if
(
is_trait
!=
should_be_trait
)
{
UnityTestResultsFailBegin
(
lineNumber
);
#ifdef UNITY_DOUBLE_VERBOSE
UnityPrint
(
UnityStrExpected
);
UnityPrint
(
UnityStrNaN
);
if
(
!
should_be_trait
)
UnityPrint
(
UnityStrNot
);
UnityPrint
(
trait_names
[
trait_index
]);
UnityPrint
(
UnityStrWas
);
UnityPrintFloat
((
float
)
actual
);
#ifdef UNITY_DOUBLE_VERBOSE
UnityPrintFloat
(
actual
);
#else
UnityPrint
(
UnityStrDelta
);
if
(
should_be_trait
)
UnityPrint
(
UnityStrNot
);
UnityPrint
(
trait_names
[
trait_index
]);
#endif
UnityAddMsgIfSpecified
(
msg
);
UNITY_FAIL_AND_BAIL
;
}
}
#endif // not UNITY_EXCLUDE_DOUBLE
//-----------------------------------------------
...
...
src/unity.h
浏览文件 @
9fe750ba
...
...
@@ -174,9 +174,11 @@
#define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NOT_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, __LINE__, NULL)
#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, __LINE__, NULL)
//Double (If Enabled)
#define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, NULL)
...
...
@@ -185,9 +187,11 @@
#define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NOT_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, __LINE__, NULL)
#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, __LINE__, NULL)
//-------------------------------------------------------
// Test Asserts (with additional messages)
...
...
@@ -266,9 +270,11 @@
#define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, __LINE__, message)
#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, __LINE__, message)
//Double (If Enabled)
#define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, __LINE__, message)
...
...
@@ -277,7 +283,9 @@
#define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, __LINE__, message)
#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, __LINE__, message)
#endif
src/unity_internals.h
浏览文件 @
9fe750ba
...
...
@@ -338,6 +338,8 @@ typedef enum _UNITY_FLOAT_STYLE_T
UNITY_FLOAT_IS_NEG_INF
,
UNITY_FLOAT_IS_NOT_NAN
,
UNITY_FLOAT_IS_NAN
,
UNITY_FLOAT_IS_NOT_DET
,
UNITY_FLOAT_IS_DET
,
}
UNITY_FLOAT_STYLE_T
;
#endif
...
...
@@ -453,21 +455,6 @@ void UnityAssertFloatSpecial(const _UF actual,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
,
const
UNITY_FLOAT_STYLE_T
style
);
void
UnityAssertFloatIsInf
(
const
_UF
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertFloatIsNegInf
(
const
_UF
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertFloatIsNaN
(
const
_UF
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
#endif
#ifndef UNITY_EXCLUDE_DOUBLE
...
...
@@ -483,20 +470,10 @@ void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertDoubleIsInf
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertDoubleIsNegInf
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertDoubleIsNaN
(
const
_UD
actual
,
const
_U_SINT
should_be
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
);
void
UnityAssertDoubleSpecial
(
const
_UD
actual
,
const
char
*
msg
,
const
UNITY_LINE_TYPE
lineNumber
,
const
UNITY_FLOAT_STYLE_T
style
);
#endif
//-------------------------------------------------------
...
...
@@ -569,9 +546,11 @@ void UnityAssertDoubleIsNaN(const _UD actual,
#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Floating Point Disabled")
#else
#define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UnityAssertFloatsWithin((_UF)(delta), (_UF)(expected), (_UF)(actual), (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((_UF)(expected) * (_UF)UNITY_FLOAT_PRECISION, (_UF)expected, (_UF)actual, (UNITY_LINE_TYPE)line, message)
...
...
@@ -579,9 +558,11 @@ void UnityAssertDoubleIsNaN(const _UD actual,
#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_INF)
#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NEG_INF)
#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NAN)
#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_DET)
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_INF)
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NEG_INF)
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NAN)
#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_DET)
#endif
#ifdef UNITY_EXCLUDE_DOUBLE
...
...
@@ -591,19 +572,23 @@ void UnityAssertDoubleIsNaN(const _UD actual,
#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)line, "Unity Double Precision Disabled")
#else
#define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UnityAssertDoublesWithin((_UD)(delta), (_UD)(expected), (_UD)(actual), (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((_UD)(expected) * (_UD)UNITY_DOUBLE_PRECISION, (_UD)expected, (_UD)actual, (UNITY_LINE_TYPE)line, message)
#define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UnityAssertEqualDoubleArray((_UD*)(expected), (_UD*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleIsInf((_UD)(actual), 1, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleIsNegInf((_UD)(actual), 1, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleIsNaN((_UD)(actual), 1, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleIsInf((_UD)(actual), 0, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleIsNegInf((_UD)(actual), 0, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleIsNaN((_UD)(actual), 0, (message), (UNITY_LINE_TYPE)line)
#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_INF)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NEG_INF)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NAN)
#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_DET)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_INF)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NEG_INF)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_NAN)
#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)line, UNITY_FLOAT_IS_NOT_DET)
#endif
#endif
test/testunity.c
浏览文件 @
9fe750ba
...
...
@@ -2468,6 +2468,50 @@ void testFloatNanIsNotInf(void)
#endif
}
void
testFloatIsDeterminate1
(
void
)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE
();
#else
TEST_ASSERT_FLOAT_IS_DETERMINATE
(
0
.
0
f
);
TEST_ASSERT_FLOAT_IS_DETERMINATE
(
123
.
3
f
);
TEST_ASSERT_FLOAT_IS_DETERMINATE
(
-
88
.
3
f
);
#endif
}
void
testFloatIsDeterminate2
(
void
)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE
(
-
88
.
3
f
);
VERIFY_FAILS_END
#endif
}
void
testFloatIsNotDeterminate1
(
void
)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE
();
#else
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE
(
1
.
0
f
/
f_zero
);
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE
(
-
1
.
0
f
/
f_zero
);
TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE
(
0
.
0
f
/
f_zero
);
#endif
}
void
testFloatIsNotDeterminate2
(
void
)
{
#ifdef UNITY_EXCLUDE_FLOAT
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_FLOAT_IS_DETERMINATE
(
-
1
.
0
f
/
f_zero
);
VERIFY_FAILS_END
#endif
}
void
testEqualFloatArrays
(
void
)
{
#ifdef UNITY_EXCLUDE_FLOAT
...
...
@@ -2796,17 +2840,47 @@ void testDoublesNotEqualPlusMinusInf(void)
#endif
}
void
testDoubleIs
Inf
(
void
)
void
testDoubleIs
PosInf1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_INF
(
2
.
0
/
d_zero
);
#endif
}
void
testDoubleIsPosInf2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_INF
(
2
.
0
/
d_zero
);
VERIFY_FAILS_END
#endif
}
void
testDoubleIsNegInf1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_NEG_INF
(
-
3
.
0
/
d_zero
);
#endif
}
void
testDoubleIsNotInf
(
void
)
void
testDoubleIsNegInf2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF
(
-
3
.
0
/
d_zero
);
VERIFY_FAILS_END
#endif
}
void
testDoubleIsNotPosInf1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
...
...
@@ -2817,6 +2891,15 @@ void testDoubleIsNotInf(void)
#endif
}
void
testDoubleIsNotPosInf2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_NOT_INF
(
2
.
0
);
#endif
}
void
testDoubleIsNotNegInf
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
...
...
@@ -2828,7 +2911,7 @@ void testDoubleIsNotNegInf(void)
#endif
}
void
testDoubleIsNan
(
void
)
void
testDoubleIsNan
1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
...
...
@@ -2837,7 +2920,18 @@ void testDoubleIsNan(void)
#endif
}
void
testDoubleIsNotNan
(
void
)
void
testDoubleIsNan2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_NAN
(
0
.
0
/
d_zero
);
VERIFY_FAILS_END
#endif
}
void
testDoubleIsNotNan1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
...
...
@@ -2848,6 +2942,15 @@ void testDoubleIsNotNan(void)
#endif
}
void
testDoubleIsNotNan2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_NOT_NAN
(
234
.
9
);
#endif
}
void
testDoubleInfIsNotNan
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
...
...
@@ -2870,6 +2973,50 @@ void testDoubleNanIsNotInf(void)
#endif
}
void
testDoubleIsDeterminate1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_DETERMINATE
(
0
.
0
);
TEST_ASSERT_DOUBLE_IS_DETERMINATE
(
123
.
3
);
TEST_ASSERT_DOUBLE_IS_DETERMINATE
(
-
88
.
3
);
#endif
}
void
testDoubleIsDeterminate2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE
(
-
88
.
3
);
VERIFY_FAILS_END
#endif
}
void
testDoubleIsNotDeterminate1
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE
(
1
.
0
/
d_zero
);
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE
(
-
1
.
0
/
d_zero
);
TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE
(
0
.
0
/
d_zero
);
#endif
}
void
testDoubleIsNotDeterminate2
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
TEST_IGNORE
();
#else
EXPECT_ABORT_BEGIN
TEST_ASSERT_DOUBLE_IS_DETERMINATE
(
-
1
.
0
/
d_zero
);
VERIFY_FAILS_END
#endif
}
void
testEqualDoubleArrays
(
void
)
{
#ifdef UNITY_EXCLUDE_DOUBLE
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录