// RUN: rm -rf %t ; mkdir -p %t // RUN: %target-build-swift %s -o %t/a.out -swift-version 4 && %target-run %t/a.out // REQUIRES: executable_test import StdlibUnittest import StdlibCollectionUnittest var DictionaryTestSuite = TestSuite("Dictionary4") DictionaryTestSuite.test("Hashable") { let d1: Dictionary = [1: "meow", 2: "meow", 3: "meow"] let d2: Dictionary = [1: "meow", 2: "meow", 3: "mooo"] let d3: Dictionary = [1: "meow", 2: "meow", 4: "meow"] let d4: Dictionary = [1: "meow", 2: "meow", 4: "mooo"] checkHashable([d1, d2, d3, d4], equalityOracle: { $0 == $1 }) let dd1: Dictionary> = [1: [2: "meow"]] let dd2: Dictionary> = [2: [1: "meow"]] let dd3: Dictionary> = [2: [2: "meow"]] let dd4: Dictionary> = [1: [1: "meow"]] let dd5: Dictionary> = [2: [2: "mooo"]] let dd6: Dictionary> = [2: [:]] let dd7: Dictionary> = [:] checkHashable( [dd1, dd2, dd3, dd4, dd5, dd6, dd7], equalityOracle: { $0 == $1 }) // Check that hash is equal even though dictionary is traversed differently var d5: Dictionary = [1: "meow", 2: "meow", 3: "mooo", 4: "woof", 5: "baah", 6: "mooo"] let expected = d5.hashValue for capacity in [4, 8, 16, 32, 64, 128, 256] { d5.reserveCapacity(capacity) expectEqual(d5.hashValue, expected) } } runAllTests()