Microsoft сделала работу над автоматической генерацией модульных тестов, на основе контрактов кода и параметризовала модульный тест. Например, в контракте говорится, что количество должно быть увеличено тем, когда объект добавляется к набору, и параметризованный модульный тест говорит, как добавить объекты “n” к набору. Pex тогда попытается создать модульный тест, который доказывает, что условия контракта нарушены. Посмотрите этот видео для обзора.
, Если это работает, Ваш модульный тест должен будет только быть записан для одного примера каждой вещи, которую Вы пытаетесь протестировать, и PEX будет в состоянии тогда решить, что элементы данных ведьмы повредят тест.
Here’s решение, что doesn’t изменяют цветовое пространство из исходного изображения. Если Вы хотите нормализовать ориентацию полутонового изображения, Вам не повезло со всеми решениями на основе UIGraphicsBeginImageContextWithOptions
, потому что она создает контекст в цветовом пространстве RGB. Вместо этого необходимо создать контекст с теми же свойствами как исходное изображение и потянуть:
extension UIImage {
static let rotatedOrentations: [UIImage.Orientation] = [.left, .leftMirrored, .right, .rightMirrored]
func normalizedImage() -> UIImage {
if imageOrientation == .up {
return self
}
let image = self.cgImage!
let swapOrientation = UIImage.rotatedOrentations.contains(imageOrientation)
let width = swapOrientation ? image.height : image.width
let height = swapOrientation ? image.width : image.height
let context = CGContext(data: nil, width: width, height: height, bitsPerComponent: image.bitsPerComponent, bytesPerRow: image.bytesPerRow, space: image.colorSpace!, bitmapInfo: image.bitmapInfo.rawValue)!
let flipVertical = CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: CGFloat(height));
context.concatenate(flipVertical)
UIGraphicsPushContext(context)
self.draw(at: .zero)
UIGraphicsPopContext()
return UIImage(cgImage: context.makeImage()!)
}
}