问题列表 - 第42413页

.Net windows形成自定义布局引擎

我正在尝试写一个纸牌游戏,玩家可以堆叠卡片.例如Ace,Two,Three.

我想想象一堆卡片,其中Ace卡部分被Two卡覆盖,而Two卡部分被三张卡覆盖.三张牌完全可见.

很简单,我想.我在用户控件中添加了我的卡片:Controls.Add(ace); Controls.Add被(2); 等等

然后我需要一些能够布局我的控件的东西,所以我编写了自定义的LayoutEngine(派生自LayoutEngine).我的第一次测试没有做任何事情,然后将控件移动50像素.

运行解决方案后,我注意到Z顺序是错误的.而不是三张卡在顶部,Ace卡顶部看起来像这样:

Ace卡>两张卡>三张卡:Ace卡在顶部两张卡在Ace卡下面三张卡在Two Card下面.

所以我开始寻找一种方法来改变WinForms中的Z顺序,并发现它只是"不可用".喜欢..嗯?!

替代方案(由MS提供)是可以通过为控件设置ChildIndex来更改Z顺序.Jikes,这意味着在列表中查找,改变我的应用程序的行为.去MS的路......

无论如何,我尝试了各种各样的东西,但似乎不可能编写一个可以解决问题的布局引擎.

我整天都在google-d,没有发现什么有用的东西.我不是GUI专家,所以我坚持这个蹩脚的问题.谁能帮助我?

非常感激!

巴斯

c# layout overlap winforms

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

错误或功能:使用切片克隆numpy数组

跟随David Morrissey的回答" 如何克隆python中的列表?'我正在运行一些性能测试,并在使用w/numpy数组时遇到意外行为.我知道可以/应该克隆一个numpy数组w /

clone = numpy.array(original)
Run Code Online (Sandbox Code Playgroud)

要么

clone = numpy.copy(original)
Run Code Online (Sandbox Code Playgroud)

但错误地认为切片也会起作用.然而:

In [11]: original = numpy.arange(4)

In [12]: original
Out[12]: array([0, 1, 2, 3])

In [13]: clone = original[:]

In [14]: clone
Out[14]: array([0, 1, 2, 3])

In [15]: clone[0] = 1

In [16]: clone
Out[16]: array([1, 1, 2, 3])

In [17]: original
Out[17]: array([1, 1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

这种轻微的不一致是否有充分的理由,或者我应该提交错误?

python numpy

3
推荐指数
1
解决办法
2411
查看次数

网站开发测试?

在我的计算机上使用多个版本的Internet Explorer进行Web开发测试的最佳方法是什么?

我看到IE Collection和TredoSoft.还有其他好的吗?

testing internet-explorer

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

停止enumerateAttribute:inRange:options:usingBlock:从使用nil值调用我的块

我在没有kCTFontAttributeName范围的现有NSAttributedString上调用以下选择器:

[attributedString enumerateAttribute:(NSString *) kCTFontAttributeName
                             inRange:NSMakeRange(0, [attributedString length])
                             options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
                          usingBlock:^(id value, NSRange range, BOOL *stop) {
    NSLog(@"Attribute: %@, %@", value, NSStringFromRange(range));
}];
Run Code Online (Sandbox Code Playgroud)

我得到下面的输出,但我希望没有输出.建议?

Attribute: (null), {0, 27}
Attribute: (null), {27, 1}
Attribute: (null), {28, 1}
Attribute: (null), {29, 1}
Attribute: (null), {30, 1}
Run Code Online (Sandbox Code Playgroud)

cocoa cocoa-touch nsattributedstring core-text

4
推荐指数
1
解决办法
2321
查看次数

单元测试处理降级的网络堆栈,文件损坏和其他缺陷

我主要是一个C++编码器,到目前为止,我没有真正为我的所有代码编写测试.我已经确定这是一个坏主意(tm),在添加了巧妙地破坏旧功能的新功能之后,或者,根据您希望如何看待它,引入了他们自己的一些新"功能".

但是,单元测试似乎是一种非常脆弱的机制.您可以在"完美"条件下测试某些内容,但是在内容中断时您无法查看代码的执行情况.例如,对于数据X,例如它是一个爬虫,假设它抓取了一些特定的站点.你只是保存样本页面,对它们进行测试,并希望这些站点永远不会改变吗?这将做工精细的回归测试,但是,你会写什么样的测试,以不断地检查这些网站生活,让你知道当应用程序不这样做的工作,因为该网站改变了一些东西,现在会导致应用程序崩溃?您不希望您的测试套件监控代码的意图吗?

上面的例子有点做作,我还没有遇到过(如果你还没有猜到).但是,让我挑选一些东西.如何测试应用程序将在降级的网络堆栈面前完成其工作?也就是说,说你有丢包适量,对于一个原因或其他,和你有一个功能,DoSomethingOverTheNetwork()应该以优雅降级的时候,它应该堆栈不执行; 但是呢?开发人员通过故意设置一个网关来亲自测试它,该网关在第一次写入时丢弃数据包以模拟坏网络.几个月后,有人检查了一些巧妙地修改某些内容的代码,因此没有及时检测到降级,或者,应用程序甚至没有识别出降级,这种情况从未被发现,因为你无法运行现实世界使用单元测试这样的测试,你呢?

那么,文件损坏怎么样?假设您将一个服务器列表存储在一个文件中,并且校验和看起来没问题,但数据并不是真的.您希望代码处理它,您编写一些您认为可以执行此操作的代码.您如何测试它是否与应用程序的生命周期完全相同?你能?

因此,脆弱.单元测试似乎只在完美的条件下测试代码(这是通过模拟对象等来提升的),而不是它们在野外会面对的.不要误解我的意思,我认为单元测试很棒,但是只有它们组成的测试套件似乎是一种聪明的方法,可以在代码中引入细微的错误,同时对它的可靠性过于自信.

我如何解决上述情况?如果单元测试不是答案,那是什么?

编辑:我看到很多答案都说"只是嘲笑它".好吧,你不能"只是模仿它",这就是原因:以我的降级网络堆栈为例,让我们假设你的函数有一个定义良好的NetworkInterface,我们将嘲笑它.应用程序通过TCP和UDP发送数据包.现在,让我们说,嘿,让我们使用模拟对象模拟界面上10%的损失,看看会发生什么.你的TCP连接增加了他们的重试次数,并增加了他们的后退,所有这些都是很好的做法.你决定改变你的UDP数据包的X%来实际建立TCP连接,有损接口,我们希望能够保证一些数据包的传输,而其他数据包不应该丢失太多.效果很好.同时,在现实世界中..当你增加TCP连接数(或TCP上的数据)时,在一个有足够损耗的连接上,你最终会增加你的UDP数据包丢失,因为你的TCP连接将最终重新开始 - 越来越多地发送他们的数据和/或减少他们的窗口,导致10%的数据包丢失现在实际上更像是90%的UDP数据包丢失.Whoopsie.

没什么大不了的,让我们把它分解为UDPInterface和TCPInterface.等一下......那些是相互依赖的,测试10%的UDP丢失和10%的TCP丢失与上面没有什么不同.

所以,问题是现在你不仅仅是对代码进行单元测试,而是将你的假设引入操作系统的TCP堆栈的工作方式.而且,这是一个坏主意(tm).比避免整个惨败更糟糕的想法.

在某些时候,您将不得不创建一个模拟操作系统,其行为与您的真实操作系统完全相同,除非是可测试的.这似乎不是一个很好的前进方式.

这是我们经历过的事情,我相信其他人也可以添加他们的经验.

我希望有人会告诉我,我错了,并指出原因!

谢谢!

c++ testing unit-testing mocking

45
推荐指数
5
解决办法
2918
查看次数

NSInvocation nil参数

我如何(或者甚至可以)将nil参数传递给NSInvocation对象?

我试着这样做:

NSMethodSignature* signature = [AClass instanceMethodSignatureForSelector:@selector(aMethod:theOtherArg:)];
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature];

[invocation setTarget: aTargetObj];
[invocation setSelector: @selector(aMethod:theOtherArg:)];

/* I've tried both this way */
AnObj* arg1 = nil;
AnotherObj* arg2 = nil;
[invocation setArgument: &arg1 atIndex:2];
[invocation setArgument: &arg2 atIndex:3];

/* and this way */
//[invocation setArgument: nil atIndex:2];
//[invocation setArgument: nil atIndex:3];

NSInvocationOperation* operation = [[NSInvocationOperation alloc] initWithInvocation:invocation];
//opQueue is an NSOperationQueue object
[opQueue addOperation:operation];
Run Code Online (Sandbox Code Playgroud)

第一种方法会因此消息而崩溃:

Thread 0 Crashed:
0   libSystem.B.dylib              0x927c1f10 strlen + 16
1   com.apple.CoreFoundation …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

8
推荐指数
1
解决办法
5483
查看次数

我怎样才能在Clojure中将PersistentHashMap打印成字符串?

我怎样才能在Clojure中将PersistentHashMap打印成字符串?我正在寻找类似的东西:

(str (pprint {... hash map here...})
Run Code Online (Sandbox Code Playgroud)

我可以作为一个字符串传递

clojure

29
推荐指数
4
解决办法
7434
查看次数

在Python中生成特征化的唯一ID

我打算从字符和数字创建一个唯一的ID.ID应该看起来像这样

XXXX-XXXX-XXXX-XXXX

其中X是数字,小写和上限字母的组合.此Id将存储在mysql数据库中,并将增加以保持数据的一致性.

关于如何开始的任何建议?

python

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

从集合中生成大小为k的所有子集

我想从一组中生成大小为k的所有子集.

例如:-say我有一组6个元素,我必须列出元素基数为3的所有子集.

我试图寻找解决方案,但那些是代码片段.它已经很久了,我已经完成了编码,因此我发现很难理解代码并构建一个可执行程序.

C或C++中的完整可执行程序将非常有用.希望使用递归的最佳解决方案.

c c++ algorithm

10
推荐指数
3
解决办法
3万
查看次数

如何在另一个类中继承C#的摘要?(比如继承Javadoc)

可能重复:
.NET xml docs - 继承文档

我可以{@inheritDoc}在C#.NET中使用类似Javadoc的东西吗?

我写的接口方法和实现类的方法的摘要正是我在那里写的,所以我复制+粘贴atm.这似乎不是很明智.

谢谢

c# javadoc summary

6
推荐指数
2
解决办法
7466
查看次数