equality 相关问题

测试以确定两个或更多项是完全相同的项还是相等的值。

有关a = b = c的工作原理的详细信息

从此答案:连锁分配如何工作?,我知道x = y = some_function()等效于:temp = some_function()x = temp y = temp但是它还等效于:x = ...

回答 1 投票 0

Go中不区分大小写的字符串比较

我如何以不区分大小写的方式比较字符串?例如,应将“ Go”和“ go”视为相等。

回答 1 投票 26

为什么函数不保留身份?

我想知道为什么Python 3.7函数的行为很奇怪。我认为这与整个哈希性概念有点怪异和矛盾。让我澄清一个简单的...

回答 1 投票 3

检查项目是否已经在具有参照相等性的列表中

我想检查一个项目是否已经在具有引用相等而不是结构相等的列表中。为了清楚起见:2个项目之间的引用相等性用item1检查为item2 ...

回答 1 投票 0

具有引用相等性的数组中的项目

我想检查一个项目是否已经在数组中,但不是结构相等,而是引用相等。这样的结构相等很容易在一行中完成:数组中的项因此,我是...

回答 1 投票 0

检查模板类中是否已存在元素

我建立了一个名为Set的类,该类继承自称为ISet的基类,它看起来像这样。模板 class Set:public ISet {public:Set(); 〜...

回答 1 投票 0

如何在字符串的布尔等式上进行模式匹配,并同时在Coq的证明中获得所需的命题等式?

我在尝试证明SF中的substi_correct定理时陷入困境,因为我不知道如何分解布尔相等性,同时又将其断言为命题相等性。定理...

回答 1 投票 0

我如何对飞镖中的函数进行相等性检查(以在CustomPainter的shouldRepaint方法中使用?)>

我对某个功能的飞镖相等性检查有问题。我有一个CustomPainter,我想有效地实现它的shouldRepaint()方法。 ...

回答 1 投票 0

错误的PHP字符串相等性

[出于某种原因,PHP决定如果:$ a =“ 3.14159265358979326666666666” $ b =“ 3.14159265358979323846264338” $ a == $ b为真。为什么会这样,我该如何解决?它破坏了我的代码。

回答 5 投票 6

。NET词典具有相同的键和值,但不是“相等”

此测试失败:使用Microsoft.VisualStudio.TestTools.UnitTesting; [TestMethod()] public void dictEqualTest(){IDictionary dict = new Dictionary ] >>>> 字典类未覆盖从MSDN doco中看到的Object.Equals方法: http://msdn.microsoft.com/en-us/library/bsc2ak47.aspx 确定是否指定了对象等于当前对象。 [看到您正在执行单元测试,您的[[Assert]类应提供一种测试方法来测试两个集合是否相同。 Microsoft单元测试框架提供CollectionAssert类用于比较集合: http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.collectionassert_members%28VS.80%29.aspx EDIT 词典实现了ICollection接口,您能看到它是否有效吗?您可能需要使用this overload比较两个字典条目。 EDIT Hmm IDictionary没有实现ICollection,这有点痛苦。但是,这可以工作(尽管有漏洞):IDictionary<string, int> dict = new Dictionary<string, int>(); IDictionary<string, int> dictClone = new Dictionary<string, int>(); for(int x = 0; x < 3; x++) { dict[x.ToString()] = x; dictClone[x.ToString()] = x; } CollectionAssert.AreEqual((System.Collections.ICollection)dict, (System.Collections.ICollection)dictClone); 上述方法适用于Dictionary的实例,但是,如果您正在测试返回IDictionary的方法,则可能会因为实现方式更改而失败。我的建议是将代码更改为使用Dictionary而不是IDictionary(因为IDictionary不是只读的,所以使用它而不是创建Dictionary不会掩盖所有内容)。 如果您对如何从单元测试的角度解决此问题特别感兴趣: 尝试一下 CollectionAssert.AreEquivalent(dict.ToList(), dictClone.ToList()); 说明 。Net 3.5及更高版本中有extension methods on IDictionary-例如.ToList()-会将字典转换为KeyValuePair的集合,可以轻松地将其与CollectionAssert.AreEquivalent进行比较。 他们甚至会给出合理有用的错误消息!用法示例: IDictionary<string, string> d1 = new Dictionary<string, string> { { "a", "1"}, {"b", "2"}, {"c", "3"}}; IDictionary<string, string> d2 = new Dictionary<string, string> { {"b", "2"}, { "a", "1"}, {"c", "3"}}; // same key-values, different order IDictionary<string, string> d3 = new Dictionary<string, string> { { "a", "1"}, {"d", "2"}, {"c", "3"}}; // key of the second element differs from d1 IDictionary<string, string> d4 = new Dictionary<string, string> { { "a", "1"}, {"b", "4"}, {"c", "3"}}; // value of the second element differs from d1 CollectionAssert.AreEquivalent(d1.ToList(), d2.ToList()); //CollectionAssert.AreEquivalent(d1.ToList(), d3.ToList()); // fails! //CollectionAssert.AreEquivalent(d1.ToList(), d4.ToList()); // fails! // if uncommented, the 2 tests above fail with error: // CollectionAssert.AreEquivalent failed. The expected collection contains 1 // occurrence(s) of <[b, 2]>. The actual collection contains 0 occurrence(s). 问题出在这行代码: Assert.AreEqual(dict, dictClone) 您正在比较不相等的对象引用。 我使用了一种扩展方法来检查两个序列是否相等 public static bool CheckForEquality<T>(this IEnumerable<T> source, IEnumerable<T> destination) { if (source.Count() != destination.Count()) { return false; } var dictionary = new Dictionary<T, int>(); foreach (var value in source) { if (!dictionary.ContainsKey(value)) { dictionary[value] = 1; } else { dictionary[value]++; } } foreach (var member in destination) { if (!dictionary.ContainsKey(member)) { return false; } dictionary[member]--; } foreach (var kvp in dictionary) { if (kvp.Value != 0) { return false; } } return true; } 您完全不了解引用类型如何工作。 Dictionary不会覆盖object.Equals()。因此,它使用引用相等性-基本上,如果两个引用都指向同一个实例,则它们相等,否则它们就不相等。 NUnit类CollectionAssert具有一个AreEquivalent method which accepts IEnumerable as parameters,因此在这种情况下就很简单 AreEquivalent 因为IEnumerable实现了CollectionAssert.AreEquivalent(dict, dictClone); 。

回答 6 投票 17

F#比较lambda是否相等

我想尝试比较F#lambda的相等性。第一次检查时,这是不可能的。 let foo = 10 let la =(乐趣x y-> x + y + foo)let lb =(乐趣x y-> x + y + foo)printfn“ ...

回答 1 投票 0


字符串不等于

我正在努力找出我的代码出了什么问题。当用户输入为“ apple”时,我得到它不是以元音开头的。请帮忙。导入java.util。*;公共类StringeExerciseElearn {...

回答 2 投票 -1

带有“ ===”的Javascript字符串相等

我正在编写一个React应用程序,并试图消除所有警告时,我发现了一个奇怪的错误... handleLike = id => {const movie = [... this.state.movi es]; const movie = films.filter(obj => obj ....

回答 1 投票 -1

如何计算字符串中所有大写字符?

我停留在应该计算字符串中高位字母的函数上。但是相反,计数器的结果为0,我不知道我在哪里犯了错误。 const bigLettersCount =(str)=> {让...

回答 3 投票 0

当按键失序时比较字典列表

我有2个字典清单。 a = [{{name“:” hello“,” city“:” xyz“},{” city“:” rty“,” name“:” ert“}] b = [{” city“:” xyz“ ,“ name”:“ hello”},{“ name”:“ ert”,“ city”:“ rty”}]上面两个列表是...

回答 2 投票 1

具有相同散列的对象应该相等吗?

在下面的示例中,我创建了两个内部结构完全相同的对象。两者都只携带值1作为实例变量。我的想法是,如果我使用e1的哈希值,则...

回答 3 投票 1


为什么Python dict会有多个具有相同散列的键?

我正在尝试深入了解Python哈希函数。我创建了一个自定义类,其中所有实例都返回相同的哈希值。 C类:def __hash __(self):返回42我只是...

回答 5 投票 84

使用元组或对象进行映射

我正在尝试使用新的(ES6)Map对象,以表示属性和值之间的映射。我有类似以下形式的对象:{key1:value1_1,key2:value2_1},... {key1:value1_N,key2:...

回答 5 投票 31

© www.soinside.com 2019 - 2024. All rights reserved.