blob: fbbe590d6c127101774f0dd1d53b765dee47f611 [file] [log] [blame]
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
%{
from gyb_stdlib_unittest_support import TRACE, stackTrace, trace
}%
public func checkStrideable<S : Strideable>(
instances: [S],
distances: [S.Stride],
distanceOracle: (Int, Int) -> S.Stride,
${TRACE}
) {
for i in instances.indices {
let first = instances[i]
for j in instances.indices {
let second = instances[j]
expectEqual(distanceOracle(i, j), first.distance(to: second))
expectEqual(second, first.advanced(by: distanceOracle(i, j)))
}
}
}