pointfreeco / swift-custom-dump

A collection of tools for debugging, diffing, and testing your application's data structures.
MIT License
800 stars 89 forks source link

No diff when comparing two instances of `UIImage` or `#imageLiteral` using `XCTAssertNoDifference ` #70

Open mikevelu opened 1 year ago

mikevelu commented 1 year ago

Describe the bug

When comparing instances of UIImage or #imageLiteral XCTAssertNoDifference doesn't provide a diff, XCTAssertEqual does.

To Reproduce testExample in ImageResourceComparisonDemoTests has some assertions which show the difference ImageResourceComparisonDemo.zip

XCTAssertEqual(
    #imageLiteral(
        resourceName: "ExampleImage"
    ),
    #imageLiteral(
        resourceName: "ExampleImage2"
    )
)

// 👆 Produces this diff:

/**
testExample(): XCTAssertEqual failed: ("<UIImage:0x600002d50480 named(main: ExampleImage) {1200, 1200} renderingMode=automatic(original)>") is not equal to ("<UIImage:0x600002d505a0 named(main: ExampleImage2) {1200, 1200} renderingMode=automatic(original)>")
*/

XCTAssertNoDifference(
    #imageLiteral(
        resourceName: "ExampleImage"
    ),
    #imageLiteral(
        resourceName: "ExampleImage2"
    )
)

// 👆 Produces this diff:

/**
testExample(): XCTAssertNoDifference failed: …

  − UIImage()
  + UIImage()

(First: −, Second: +)
*/

Expected behavior I'd have expected XCTAssertNoDifference to give me an indication of what the difference between the two images is, similar to what XCTAssertEqual does.

Environment