// RUN: %target-run-simple-swift // REQUIRES: executable_test // REQUIRES: objc_interop import ObjectiveC import StdlibUnittest var ObjectiveCTests = TestSuite("ObjectiveC") class NSObjectWithCustomHashable : NSObject { init(value: Int, hashValue: Int) { self._value = value self._hashValue = hashValue } override func isEqual(_ other: Any?) -> Bool { let other_ = other as! NSObjectWithCustomHashable return self._value == other_._value } override var hashValue: Int { return _hashValue } var _value: Int var _hashValue: Int } ObjectiveCTests.test("NSObject/Hashable") { let instances: [(order: Int, object: NSObject)] = [ (10, NSObjectWithCustomHashable(value: 10, hashValue: 100)), (10, NSObjectWithCustomHashable(value: 10, hashValue: 100)), (20, NSObjectWithCustomHashable(value: 20, hashValue: 100)), (30, NSObjectWithCustomHashable(value: 30, hashValue: 300)), ] checkHashable( instances.map { $0.object }, equalityOracle: { instances[$0].order == instances[$1].order }) } runAllTests()