开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
forked from liu/LCUI
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (16)
标签 (29)
master
develop
add-rounded-border-render
update-docs
add-media-query
update-changelog
fix_compiler_warnings
fix_147_update_ime
add_fontconfig
update_changelog
add_framebuffer_driver
add_clang_format
add_commitlint
update_widget_resizing
change_license
update_docs
v1.3.0
v1.2.0-beta
v1.1.0-beta
v1.0.0-beta.4
v1.0.0-beta.3
v1.0-beta2
v1.0.0-beta.2
v1.0-beta
v1.0.0-beta
v1.0-alpha2
v1.0.0-alpha.2
v1.0-alpha
v1.0.0-alpha
v0.15.0
v0.15.0-rc1
v0.14.0-rc1
v0.14.0-alpha1
v0.13.0
v0.13.0-rc2
v0.13.0-rc1
master
分支 (16)
标签 (29)
master
develop
add-rounded-border-render
update-docs
add-media-query
update-changelog
fix_compiler_warnings
fix_147_update_ime
add_fontconfig
update_changelog
add_framebuffer_driver
add_clang_format
add_commitlint
update_widget_resizing
change_license
update_docs
v1.3.0
v1.2.0-beta
v1.1.0-beta
v1.0.0-beta.4
v1.0.0-beta.3
v1.0-beta2
v1.0.0-beta.2
v1.0-beta
v1.0.0-beta
v1.0-alpha2
v1.0.0-alpha.2
v1.0-alpha
v1.0.0-alpha
v0.15.0
v0.15.0-rc1
v0.14.0-rc1
v0.14.0-alpha1
v0.13.0
v0.13.0-rc2
v0.13.0-rc1
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (16)
标签 (29)
master
develop
add-rounded-border-render
update-docs
add-media-query
update-changelog
fix_compiler_warnings
fix_147_update_ime
add_fontconfig
update_changelog
add_framebuffer_driver
add_clang_format
add_commitlint
update_widget_resizing
change_license
update_docs
v1.3.0
v1.2.0-beta
v1.1.0-beta
v1.0.0-beta.4
v1.0.0-beta.3
v1.0-beta2
v1.0.0-beta.2
v1.0-beta
v1.0.0-beta
v1.0-alpha2
v1.0.0-alpha.2
v1.0-alpha
v1.0.0-alpha
v0.15.0
v0.15.0-rc1
v0.14.0-rc1
v0.14.0-alpha1
v0.13.0
v0.13.0-rc2
v0.13.0-rc1
LCUI
/
test
/
test_object.c
LCUI
/
test
/
test_object.c
test_object.c 3.37 KB
一键复制 编辑 原始数据 按行查看 历史
liu 提交于 2019年05月05日 21:35 +08:00 . feat(util): add Object_ToString()
#include <wchar.h>
#include <math.h>
#include <string.h>
#include <LCUI_Build.h>
#include <LCUI/util/logger.h>
#include <LCUI/util/object.h>
#include "test.h"
static void on_object_change(LCUI_Object object, void *data)
{
int *count = data;
*count += 1;
}
static int test_string_object(void)
{
int ret = 0;
int object_changes = 0;
LCUI_Object tmp;
LCUI_Object str1 = String_New("hello");
LCUI_Object str2 = String_New("world");
LCUI_ObjectRec str3;
LCUI_ObjectWatcher watcher;
watcher = Object_Watch(str1, on_object_change, &object_changes);
CHECK(watcher != NULL);
String_Init(&str3, "helloworld");
tmp = Object_Operate(str1, "+", str2);
CHECK(Object_Compare(&str3, tmp) == 0);
CHECK(Object_Operate(str1, "+=", str2) == str1);
CHECK(Object_Compare(str1, &str3) == 0);
CHECK(strcmp(str1->value.string, "helloworld") == 0);
CHECK(object_changes == 1);
ObjectWatcher_Delete(watcher);
Object_Delete(tmp);
Object_Delete(str1);
Object_Delete(str2);
Object_Destroy(&str3);
return ret;
}
static int test_wstring_object(void)
{
int ret = 0;
LCUI_Object tmp;
LCUI_Object str1 = WString_New(L"测试");
LCUI_Object str2 = WString_New(L"文本");
LCUI_ObjectRec str3;
LCUI_Object str4;
WString_Init(&str3, L"测试文本");
tmp = Object_Operate(str1, "+", str2);
CHECK(Object_Compare(&str3, tmp) == 0);
CHECK(Object_Operate(str1, "+=", str2) == str1);
CHECK(Object_Compare(str1, &str3) == 0);
CHECK(wcscmp(str1->value.wstring, L"测试文本") == 0);
WString_SetValue(&str3, L"1000");
str4 = Object_ToString(&str3);
CHECK(strcmp(str4->value.string, "1000") == 0);
Object_Delete(tmp);
Object_Delete(str1);
Object_Delete(str2);
Object_Delete(str4);
Object_Destroy(&str3);
return ret;
}
static int test_number_object(void)
{
int ret = 0;
int object_changes = 0;
LCUI_Object tmp;
LCUI_Object str;
LCUI_ObjectRec num1;
LCUI_ObjectRec num2;
LCUI_ObjectWatcher watcher;
Number_Init(&num1, 1.25);
Number_Init(&num2, 4.0);
watcher = Object_Watch(&num1, on_object_change, &object_changes);
CHECK(watcher != NULL);
tmp = Object_Operate(&num1, "*", &num2);
CHECK(Object_Operate(&num1, "*=", &num2) == &num1);
CHECK(Object_Compare(&num1, tmp) == 0);
CHECK(tmp->value.number == 5.0);
CHECK(object_changes == 1);
Object_Delete(tmp);
tmp = Object_Operate(&num1, "/", &num2);
CHECK(Object_Operate(&num1, "/=", &num2) == &num1);
CHECK(Object_Compare(&num1, tmp) == 0);
CHECK(tmp->value.number == 1.25);
CHECK(object_changes == 2);
Object_Delete(tmp);
Number_SetValue(&num1, 4.5);
Number_SetValue(&num2, 5.5);
CHECK(object_changes == 3);
tmp = Object_Operate(&num1, "+", &num2);
CHECK(Object_Operate(&num1, "+=", &num2) == &num1);
CHECK(Object_Compare(&num1, tmp) == 0);
CHECK(tmp->value.number == 10.0);
CHECK(object_changes == 4);
Object_Delete(tmp);
Number_SetValue(&num1, 12.5);
Number_SetValue(&num2, 7.5);
CHECK(object_changes == 5);
tmp = Object_Operate(&num1, "-", &num2);
CHECK(Object_Operate(&num1, "-=", &num2) == &num1);
CHECK(Object_Compare(&num1, tmp) == 0);
CHECK(tmp->value.number == 5.0);
CHECK(object_changes == 6);
Object_Delete(tmp);
str = Object_ToString(&num1);
CHECK(strcmp(str->value.string, "5") == 0);
ObjectWatcher_Delete(watcher);
Object_Destroy(&num1);
Object_Delete(str);
return ret;
}
int test_object(void)
{
int ret = 0;
ret += test_string_object();
ret += test_wstring_object();
ret += test_number_object();
return ret;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

面向 C 的图形界面开发库,可借助 XML 和 CSS 构建简单的跨平台桌面应用
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/netdebug/LCUI.git
git@gitee.com:netdebug/LCUI.git
netdebug
LCUI
LCUI
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /