问题标签 [invariants]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
159 浏览

c# - 代码跳过 Contract.Requires

我正在尝试使用 c# 合同编写此方法...但是在调试时,它完全忽略了 Contract.requires 和 CheckRep() 我是否使用不正确?

0 投票
2 回答
2410 浏览

arrays - 在 Ada 中查找数组中的最大值

我正在做一个 Ada 程序,其中有很多不同的函数与数组混淆,我得到了所有的排序函数,我现在坚持使用循环不变量来检索数组中的最大值来设计该函数的循环。有什么帮助吗?

0 投票
3 回答
1209 浏览

opengl - GPU供应商之间的OpenGL确定性渲染

我目前正在使用 OpenGL 编写科学成像应用程序。

我想知道当我的代码(C++ / OpenGL 和简单的 GLSL)在不同的硬件(ATI 与 NVidia、各种 NVidia 代和各种操作系统)上执行时,OpenGL 渲染(就从 FBO 检索的像素而言)是否应该是完全确定的)?

更准确地说,每次我在任何硬件(可以运行基本的 GLSL 和 OpenGL 3.0)上运行我的代码时,我都需要完全相同的像素缓冲区......

那可能吗?我应该考虑一些建议吗?

如果不可能,是否有特定品牌的视频卡(可能是 Quadro?)可以在改变主机操作系统的同时做到这一点?

0 投票
1 回答
1006 浏览

matlab - 在 MATLAB 中识别相似三角形的方向

我有一个相似三角形的 BW 位图。我试图确定每个三角形所面对的方向。“面对”是指以一种在所有三角形中保持不变的方式来描述方向,例如最长边中线的方向。

到目前为止,我可以单独识别三角形,但我不知道找出每个三角形方向的最佳方法是什么。

作为第一个想法,我考虑使用霍夫变换拟合每个三角形边的线条。一旦我有了 3 个边,我就可以计算它们的交点,然后我就得到了 3 个顶点的坐标。从 3 个顶点很容易找出最长边的中位数。

我对这种方法的问题是我从未使用过霍夫变换,而且我不知道编写一个找到边并以我可用于计算交点的方式返回它们的函数有多难。您能否将我链接到一些文章或简要解释如何使用 Hough 变换在表示中找到我可以用来计算交叉点的边?

我的另一个想法是直接在位图图像上使用旋转不变矩,而不通过霍夫变换识别它们的侧面。

我对这个解决方案的问题是,当我使用时刻来描述一个方向时,我不知道它的“含义”是什么。如果我使用不变矩,如何定义参考方向?

带有已识别对象的示例图像: 样本

单个对象 样品1

0 投票
2 回答
383 浏览

c - 是否有用于 C 程序的静态不变发现工具?

我正在寻找一种可以在 C 程序中静态发现不变量的工具。我检查了Daikon,但它只是动态地发现不变量。

是否有适合我正在寻找的工具?谢谢!

0 投票
2 回答
84 浏览

computer-science - 这个语句可以被视为类不变量吗?

这是一个非常普遍的想法,但让我们在此示例中使用 C#。

鉴于

  • 我有一个一次性类Foo它实现IDisposable
  • Foo有一个布尔标志disposed,在被调用之前为Dispose,之后为
  • Foothrows的所有公共方法在调用时ObjectDisposedException如果disposed

有没有这个说法

的任何方法Foo,除了,将在已释放的实例上调用时Dispose抛出一个。ObjectDisposedExceptionFoo

描述一个不变量Foo?

0 投票
2 回答
4470 浏览

function - 用于计算阶乘的函数的循环不变量

我很难正确识别以下函数的循环不变量:

我已经确定循环不变量是x = 1 OR x = y!因为该语句作为前置条件成立并且作为后置条件成立。

它似乎并不适用于每次迭代,例如如果 y = 3,那么在循环的第一次迭代中,x = 1 * 3 等于 3 而不是 3!相当于 6。

我想这就是我真正困惑的地方。一些书籍文章指出,循环不变量是在开始或循环时必须等于真(因此是前置条件)并且在循环结束时也必须为真(因此是后置条件)但不一定需要的语句在循环的中途保持真实。

上述函数的正确循环不变量是什么?

0 投票
1 回答
100 浏览

d - D 类不变量调用 const 函数

为什么以下会引发编译器错误:

main.d(14): Error: cannot call public/export function f from invariant.

我理解不变的概念;您想在每次公开调用方法之间检查类的状态。

但是,不可变或 const 成员函数不能改变类的状态(除非this通过了?),所以围绕这些函数的不变检查是多余的。可以将不变量调用放在一边,并且不会出现无限循环,从而导致编译器错误错误。


自从我使用对象创建层次结构以来,我就想到了这一点,这些对象定义:

在课堂内使用这个小功能更容易,但也可能在课堂外使用。但是将其定义为 public 违反了 invariant()。

0 投票
1 回答
430 浏览

unit-testing - ODT(观察驱动测试)有哪些好处和陷阱?

我们刚刚看到白皮书 “观察驱动测试:是的,代码正在做你想做的事。顺便说一句,它还在做什么?” ,并且很感兴趣。

然而,谷歌似乎并没有透露太多关于它在实践中是如何工作的(12)。那里的一切似乎都来自供应商Agitar

是否有人将 ODT 作为 TDD 和 CI 的补充流程实施?

如果是这样,请分享您遇到的一些好处陷阱……我们很乐意从您的智慧中受益。

0 投票
4 回答
1183 浏览

c++ - C++:STL:set:存储值常量

具有以下代码:

我无法编译此代码(MSVCPP 11.0):

这有助于编译:

问题:我知道map并将multimap它们的值存储为pair(const K, V)其中 K 是键而 V 是值。我们不能改变 K 对象。但是set<T>并将multiset<T>他们的对象存储为T,而不是const T。那么为什么我需要这个 const 演员?