Итак, в документации Apple говорится, что CIImage
соответствует Equatable
. Я хотел бы сказать, что следующий модульный тест пройдет. Однако это не так. Меня интересует, почему.Должен ли CIImage быть равным?
func test_CIImageEqualityShouldWork() {
let bundle = NSBundle(forClass: PrototypeTests.self)
guard let path = bundle.pathForResource("testImage", ofType: "png") else { return }
guard let image = UIImage(contentsOfFile: path) else { return }
let thingy1 = CIImage(image: image)
let thingy2 = CIImage(image: image)
XCTAssert(thingy1 == thingy2)
}
Изображение существует, guard
заявления как пройти, но утверждают, терпит неудачу, они не равны.
Из интереса, я попытался создать UIImage
два раза и сравнить их тоже. Это также терпит неудачу.
Хм, интересно. Поэтому я также попытался преобразовать их каждый в 'UIImage', а затем преобразовать их в' NSData' и сравнить это - все еще не удалось, даже с идентичными изображениями из пакета. Должно ли это работать? – Luke
@ lukech: Вы конвертируете PNG-файл -> UIImage -> CIImage -> UIImage -> PNG-данные. Я бы не ожидал, что данные будут идентичными. –
Я бы это сделал. Возможно, это наивно. Во всяком случае, это похоже на правильный ответ на мой вопрос, так сильно, спасибо :) – Luke