小编Ed.*_*Ed.的帖子

单元测试:测试什么/不测试什么?

从几天前开始,我开始对C#和VS2010中的单元测试和TDD感兴趣.我已经阅读了博客文章,观看了youtube教程,以及更多解释为什么TDD和单元测试对您的代码如此有用以及如何做到这一点的东西.

但我发现的最大问题是,我不知道在我的测试中要检查什么以及不检查什么.

我理解我应该检查所有逻辑操作,引用和依赖项的问题,但是,例如,我应该为字符串格式创建一个单元测试,这是通过用户输入的吗?或者它只是浪费我的时间,而我可以在实际代码中检查它?

有没有指导澄清这个问题?

tdd unit-testing

19
推荐指数
4
解决办法
7041
查看次数

使用Sqlite3 C++和VisualStudio2010在INSERT期间编码问题

我正在使用sqlite3和C++ API以及VisualStudio 2010为一个项目开发一个小包装器.就像使用SQLiteDataBaseBrowser这样的工具进行检查一样,主要问题是我尝试在表中插入的信息显示为损坏/根本没有出现.该表似乎是使用UTF8编码正确创建的.

我尝试将VS中的字符集配置值用作"使用多字节字符集",并尝试使用"使用Unicode字符集",但结果没有变化.两者都给我带来了与损坏数据相同的问题.我使用典型的std :: strings转换为legacy c char*,正如我在几个例子中看到的,它应该与API提供的sqlite3_bind_text(...)函数一起正常工作.

    sqlite3_bind_int(stmt, 1, newShop.GetId());
    sqlite3_bind_text(stmt, 2, newShop.GetName().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 3, newShop.GetLocation().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 4, newShop.GetPicturePath().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 5, newShop.GetRegisters().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 6, newShop.GetMixes().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 7, newShop.GetAllowedUsers().c_str(), -1, SQLITE_STATIC);
    sqlite3_bind_int(stmt, 8, newShop.IsAvailable() == true?1:0);
Run Code Online (Sandbox Code Playgroud)

newShop是一个类的实例,它包含std :: strings和int中的信息.我不得不说使用int类型的绑定,工作完美且没有问题,但其他人看起来完全搞砸了.当字符串被硬编码时,它们看起来还不错,直到我尝试插入特殊字符,如"áàä"等.

该表是使用以下语句创建的:

char *szSQL = "CREATE TABLE IF NOT EXISTS SHOPS (ID INTEGER PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, LOCATION TEXT, PICTUREPATH TEXT, REGISTERS TEXT, MIXES TEXT, USERS TEXT, AVAILABLE …
Run Code Online (Sandbox Code Playgroud)

c++ sqlite encoding utf-8 visual-studio-2010

9
推荐指数
1
解决办法
761
查看次数

将功能扩展到.NET控件

目前我正在使用一个工具,需要创建一些带有一些额外字段的自定义.NET.我一直想知道什么方法可以更好地解决这个问题,并一直在考虑以下选项:

选项A: - 为每个控件创建一个派生类(比方说,CLabel,CGroupBox ......),我在每个类上定义新字段.这将意味着更糟糕的可持续性,但易于操作.

例:

class CLabel: Label
{
    public List<Control> RelatedControls {get; set;}
    public String textHint;
    // more stuff...

    public CLabel()
    {}
 }
Run Code Online (Sandbox Code Playgroud)

选项B: - 此选项意味着不从每个控件创建派生类,而是使用实际的Label,GroupBox等控件并创建封装所有"额外"属性的类.将在Control.Tag属性中引用此额外属性对象.我对这个问题有疑问,因为在Tag属性中引用一种复杂的对象对我来说感觉有点蹩脚,但这意味着更好的可持续性,当然也不需要子类化控件.

例:

Label lbl = new Label();
lbl.Tag = new ControlDescription();
Run Code Online (Sandbox Code Playgroud)

选项C: - 这意味着具有选项A和B的某种组合.只需创建自定义控件,例如CLabel,即向Label控件添加类型ControlDescription字段.这样我们就可以确保封装和可持续性,但是我们避免这种Tag情况.

我很确定有很多选择比那些更好.可能只是使用多态 - 一个我仍然遇到问题的概念 - 可以取消自定义控件类.您认为哪些选项最好?你认为所有这些都可以做得更好吗?

.net c# winforms

5
推荐指数
1
解决办法
248
查看次数

Twitter表情符号编码twitteR和R的问题

我正在尝试构建一种在twitter中查找表情符号的方法,并将它们与unicode表中可以找到的unicode表联系起来,但我发现很难识别它们,因为我认为编码问题或仅仅是我对它的误解.这个话题.简而言之,我所做的是从http://www.unicode.org/emoji/charts/full-emoji-list.html中的表格中构建一个表情符号"库",其中包含标题和代码点(代码表情符号.我在R里用图书馆rvest取消了这个.

问题出现在我用推特中的twitteR API从twitter获取信息时.因为表情符号的代码看起来并不像这个表中的那些.

让我们举一个100(100点)红色图标表情符号的例子.这是前链接表中的数字1468,其代码点代码为:

U+1F4AF
Run Code Online (Sandbox Code Playgroud)

现在,当我从twitter中获取它时,首先它在状态类中显示为这样,API已内置以使用推文.

\xed??\xed??
Run Code Online (Sandbox Code Playgroud)

然后,一旦我将其转换为数据帧,我也使用来自twitter API的内置函数.例如:

tweet$toDataFrame()
Run Code Online (Sandbox Code Playgroud)

表情符号变为:

<ed><U+00A0><U+00BD><ed><U+00B2><U+00AF>
Run Code Online (Sandbox Code Playgroud)

我尝试使用R中的函数iconv将其转换为以下代码:

iconv(tweet$text, from="UTF-8", to="ASCII", "byte)
Run Code Online (Sandbox Code Playgroud)

我只设法使它看起来像这样:

<ed><a0><bd><ed><b2><af>
Run Code Online (Sandbox Code Playgroud)

因此,结束并在测试结束时,我得到以下结果:

<ed><a0><bd><ed><b2><af>
<ed><U+00A0><U+00BD><ed><U+00B2><U+00AF>
\xed??\xed??
Run Code Online (Sandbox Code Playgroud)

其中没有一个看起来像表格指定的代码点:

U+1F4AF
Run Code Online (Sandbox Code Playgroud)

有没有可能在两个字符串之间进行转换?我错过了什么?为什么Twitter会为emojis返回此信息?

twitter encoding r utf-8 emoji

5
推荐指数
1
解决办法
4685
查看次数

使用R中的文本分类和大稀疏矩阵

我正在研究一个文本多类分类项目,我需要构建文档/术语矩阵,并用R语言进行训练和测试.

我已经有了不适合R中基矩阵的有限维度的数据集,并且需要构建大的稀疏矩阵才能对例如100k的推文进行分类.我正在使用quanteda软件包,因为它现在比包tm更有用和可靠,其中使用字典创建DocumentTermMatrix,使得过程难以置信地使用小数据集.目前,正如我所说的,我使用quanteda来构建等效的Document Term Matrix容器,稍后我将其转换为data.frame来执行培训.

我想知道是否有办法建立这么大的矩阵.我一直在阅读有关的bigmemory包,允许这种容器的,但我不知道它会与插入符号为后来的分类.总的来说,我想了解这个问题并构建一个解决方法,以便能够处理更大的数据集,因为RAM不是(大)问题(32GB),但我正试图找到一种方法来做到这一点,我觉得完全失去了关于它.

r classification text-mining r-caret quanteda

2
推荐指数
1
解决办法
1210
查看次数