Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Unity
提交
9e8ab3df
T
Third Party Unity
项目概览
OpenHarmony
/
Third Party Unity
大约 1 年 前同步成功
通知
34
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,发现更多精彩内容 >>
提交
9e8ab3df
编写于
1月 13, 2017
作者:
M
Mark VanderVoord
提交者:
GitHub
1月 13, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #241 from jsalling/cleanup/float-testing
Cleanup floating point print testing, update docs
上级
85ef1092
4c78cde2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
57 deletion
+35
-57
examples/unity_config.h
examples/unity_config.h
+14
-26
src/unity.c
src/unity.c
+1
-1
src/unity_internals.h
src/unity_internals.h
+15
-25
test/tests/testunity.c
test/tests/testunity.c
+5
-5
未找到文件。
examples/unity_config.h
浏览文件 @
9e8ab3df
/* Unity Configuration
* As of May 11th, 2016 at ThrowTheSwitch/Unity commit 837c529
* Update:
August 25
th, 2016
* Update:
December 29
th, 2016
* See Also: Unity/docs/UnityConfigurationGuide.pdf
*
* Unity is designed to run on almost anything that is targeted by a C compiler.
...
...
@@ -37,11 +37,6 @@
#ifndef UNITY_CONFIG_H
#define UNITY_CONFIG_H
#ifdef __cplusplus
extern
"C"
{
#endif
/* ************************* AUTOMATIC INTEGER TYPES ***************************
* C's concept of an integer varies from target to target. The C Standard has
* rules about the `int` matching the register size of the target
...
...
@@ -122,10 +117,9 @@ extern "C"
/* By default, Unity guesses that you will want single precision floating point
* support, but not double precision. It's easy to change either of these using
* the include and exclude options here. You may include neither,
either, or
* both, as suits your needs.
* the include and exclude options here. You may include neither,
just float,
*
or
both, as suits your needs.
*/
/* #define UNITY_INCLUDE_FLOAT */
/* #define UNITY_EXCLUDE_FLOAT */
/* #define UNITY_INCLUDE_DOUBLE */
/* #define UNITY_EXCLUDE_DOUBLE */
...
...
@@ -137,18 +131,15 @@ extern "C"
/* Unity aims for as small of a footprint as possible and avoids most standard
* library calls (some embedded platforms don't have a standard library!).
* Because of this, its routines for printing integer values are minimalist and
* hand-coded. To keep Unity universal, though, we chose to _not_ develop our
* own floating point print routines. Instead, the display of floating point
* values during a failure are optional. By default, Unity will not print the
* actual results of floating point assertion failure. So a failed assertion
* will produce a message like `"Values Not Within Delta"`. If you would like
* verbose failure messages for floating point assertions, use these options to
* give more explicit failure messages (e.g. `"Expected 4.56 Was 4.68"`). Note
* that this feature requires the use of `sprintf` so might not be desirable in
* all cases.
* hand-coded. To keep Unity universal, though, we eventually chose to develop
* our own floating point print routines. Still, the display of floating point
* values during a failure are optional. By default, Unity will print the
* actual results of floating point assertion failures. So a failed assertion
* will produce a message like "Expected 4.0 Was 4.25". If you would like less
* verbose failure messages for floating point assertions, use this option to
* give a failure message `"Values Not Within Delta"` and trim the binary size.
*/
/* #define UNITY_FLOAT_VERBOSE */
/* #define UNITY_DOUBLE_VERBOSE */
/* #define UNITY_EXCLUDE_FLOAT_PRINT */
/* If enabled, Unity assumes you want your `FLOAT` asserts to compare standard C
* floats. If your compiler supports a specialty floating point type, you can
...
...
@@ -211,8 +202,8 @@ extern "C"
* serial `RS232_putc()` function you wrote like thus:
*/
/* #define UNITY_OUTPUT_CHAR(a) RS232_putc(a) */
/* #define UNITY_OUTPUT_FLUSH() RS232_
config(115200,1,8,0
) */
/* #define UNITY_OUTPUT_START() RS232_
flush(
) */
/* #define UNITY_OUTPUT_FLUSH() RS232_
flush(
) */
/* #define UNITY_OUTPUT_START() RS232_
config(115200,1,8,0
) */
/* #define UNITY_OUTPUT_COMPLETE() RS232_close() */
/* For some targets, Unity can make the otherwise required `setUp()` and
...
...
@@ -232,6 +223,7 @@ extern "C"
*/
/* #define UNITY_SUPPORT_WEAK weak */
/* #define UNITY_SUPPORT_WEAK __attribute__((weak)) */
/* #define UNITY_NO_WEAK */
/* Some compilers require a custom attribute to be assigned to pointers, like
* `near` or `far`. In these cases, you can give Unity a safe default for these
...
...
@@ -242,8 +234,4 @@ extern "C"
/* #define UNITY_PTR_ATTRIBUTE __attribute__((far)) */
/* #define UNITY_PTR_ATTRIBUTE near */
#ifdef __cplusplus
}
#endif
/* extern "C" */
#endif
/* UNITY_CONFIG_H */
src/unity.c
浏览文件 @
9e8ab3df
...
...
@@ -642,6 +642,7 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
}
/*-----------------------------------------------*/
#ifndef UNITY_EXCLUDE_FLOAT
/* Wrap this define in a function with variable types as float or double */
#define UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff) \
if (isinf(expected) && isinf(actual) && (isneg(expected) == isneg(actual))) return 1; \
...
...
@@ -670,7 +671,6 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
UnityPrint(UnityStrDelta)
#endif
/* UNITY_EXCLUDE_FLOAT_PRINT */
#ifndef UNITY_EXCLUDE_FLOAT
static
int
UnityFloatsWithin
(
UNITY_FLOAT
delta
,
UNITY_FLOAT
expected
,
UNITY_FLOAT
actual
)
{
UNITY_FLOAT
diff
;
...
...
src/unity_internals.h
浏览文件 @
9e8ab3df
...
...
@@ -164,16 +164,15 @@
#ifdef UNITY_EXCLUDE_FLOAT
/* No Floating Point Support */
#undef UNITY_INCLUDE_FLOAT
#undef UNITY_FLOAT_PRECISION
#undef UNITY_FLOAT_TYPE
#ifndef UNITY_EXCLUDE_DOUBLE
#define UNITY_EXCLUDE_DOUBLE
/* Remove double when excluding float support */
#endif
#ifndef UNITY_EXCLUDE_FLOAT_PRINT
#define UNITY_EXCLUDE_FLOAT_PRINT
#endif
#else
#ifndef UNITY_INCLUDE_FLOAT
#define UNITY_INCLUDE_FLOAT
#endif
/* Floating Point Support */
#ifndef UNITY_FLOAT_PRECISION
#define UNITY_FLOAT_PRECISION (0.00001f)
...
...
@@ -208,29 +207,20 @@ typedef UNITY_FLOAT_TYPE UNITY_FLOAT;
* Double Float Support
*-------------------------------------------------------*/
/* unlike FLOAT, we DON'T include by default */
#ifndef UNITY_EXCLUDE_DOUBLE
#ifndef UNITY_INCLUDE_DOUBLE
#define UNITY_EXCLUDE_DOUBLE
#endif
#endif
#ifdef UNITY_EXCLUDE_DOUBLE
/* unlike float, we DON'T include by default */
#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(UNITY_INCLUDE_DOUBLE)
/* No Floating Point Support */
#undef UNITY_DOUBLE_PRECISION
#undef UNITY_DOUBLE_TYPE
#ifdef UNITY_INCLUDE_DOUBLE
#ifndef UNITY_EXCLUDE_DOUBLE
#define UNITY_EXCLUDE_DOUBLE
#else
#undef UNITY_INCLUDE_DOUBLE
#endif
#ifdef UNITY_EXCLUDE_FLOAT
#define UNITY_EXCLUDE_FLOAT_PRINT
#else
#ifndef UNITY_DOUBLE_TYPE
#define UNITY_DOUBLE_TYPE double
#endif
#ifndef UNITY_EXCLUDE_FLOAT
#ifndef UNITY_DOUBLE_TYPE
#define UNITY_DOUBLE_TYPE double
#endif
typedef
UNITY_FLOAT
UNITY_DOUBLE
;
/* For parameter in UnityPrintFloat(UNITY_DOUBLE), which aliases to double or float */
#endif
...
...
test/tests/testunity.c
浏览文件 @
9e8ab3df
...
...
@@ -3289,7 +3289,7 @@ void testFloatPrinting(void)
void
testFloatPrintingRoundTiesToEven
(
void
)
{
#if defined(UNITY_EXCLUDE_FLOAT) || !defined(USING_OUTPUT_SPY)
#if defined(UNITY_EXCLUDE_FLOAT
_PRINT
) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE
();
#else
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
...
...
@@ -3304,7 +3304,7 @@ void testFloatPrintingRoundTiesToEven(void)
void
testFloatPrintingInfinityAndNaN
(
void
)
{
#if defined(UNITY_EXCLUDE_FLOAT) || !defined(USING_OUTPUT_SPY)
#if defined(UNITY_EXCLUDE_FLOAT
_PRINT
) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE
();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING
(
"Inf"
,
1
.
0
f
/
f_zero
);
...
...
@@ -3934,7 +3934,7 @@ void testNotEqualDoubleArraysLengthZero(void)
void
testDoublePrinting
(
void
)
{
#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
#if defined(UNITY_EXCLUDE_
FLOAT_PRINT) || defined(UNITY_EXCLUDE_
DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE
();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING
(
"0.100469"
,
0
.
10046949999999999
);
...
...
@@ -3956,7 +3956,7 @@ void testDoublePrinting(void)
void
testDoublePrintingRoundTiesToEven
(
void
)
{
#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
#if defined(UNITY_EXCLUDE_
FLOAT_PRINT) || defined(UNITY_EXCLUDE_
DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE
();
#else
#ifdef UNITY_ROUND_TIES_AWAY_FROM_ZERO
...
...
@@ -3971,7 +3971,7 @@ void testDoublePrintingRoundTiesToEven(void)
void
testDoublePrintingInfinityAndNaN
(
void
)
{
#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(USING_OUTPUT_SPY)
#if defined(UNITY_EXCLUDE_
FLOAT_PRINT) || defined(UNITY_EXCLUDE_
DOUBLE) || !defined(USING_OUTPUT_SPY)
TEST_IGNORE
();
#else
TEST_ASSERT_EQUAL_PRINT_FLOATING
(
"Inf"
,
1
.
0
/
d_zero
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录