Updating the test cases
This commit is contained in:
parent
b5750c541c
commit
8b3e06c00f
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -80,11 +80,12 @@ public extension DynamicColor {
|
||||||
*/
|
*/
|
||||||
public convenience init(hex: UInt32, useAlpha alphaChannel: Bool = false) {
|
public convenience init(hex: UInt32, useAlpha alphaChannel: Bool = false) {
|
||||||
let mask = 0xFF
|
let mask = 0xFF
|
||||||
|
let cappedHex = !alphaChannel && hex > 0xffffff ? 0xffffff : hex
|
||||||
|
|
||||||
let r = Int(hex >> (alphaChannel ? 24 : 16)) & mask
|
let r = Int(cappedHex >> (alphaChannel ? 24 : 16)) & mask
|
||||||
let g = Int(hex >> (alphaChannel ? 16 : 8)) & mask
|
let g = Int(cappedHex >> (alphaChannel ? 16 : 8)) & mask
|
||||||
let b = Int(hex >> (alphaChannel ? 8 : 0)) & mask
|
let b = Int(cappedHex >> (alphaChannel ? 8 : 0)) & mask
|
||||||
let a = alphaChannel ? Int(hex) & mask : 255
|
let a = alphaChannel ? Int(cappedHex) & mask : 255
|
||||||
|
|
||||||
let red = CGFloat(r) / 255
|
let red = CGFloat(r) / 255
|
||||||
let green = CGFloat(g) / 255
|
let green = CGFloat(g) / 255
|
||||||
|
|
|
@ -81,6 +81,13 @@ class DynamicColorTests: XCTestCase {
|
||||||
XCTAssert(custom.toHex() == 0x769a2b, "Color string should be equal to 0x769a2b")
|
XCTAssert(custom.toHex() == 0x769a2b, "Color string should be equal to 0x769a2b")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testToHexWithAlpha() {
|
||||||
|
let custom = DynamicColor(hex: 0x769a2b80, useAlpha: true)
|
||||||
|
|
||||||
|
XCTAssert(custom.toHex() == 0x769a2b, "Color string should be equal to 0x769a2b")
|
||||||
|
XCTAssertEqual(custom.alphaComponent, 0.5, accuracy: 0.01, "Alpha component should be equal to 0.5 (not \(custom.alphaComponent))")
|
||||||
|
}
|
||||||
|
|
||||||
func testHexPrecision() {
|
func testHexPrecision() {
|
||||||
let allHexes: CountableRange<UInt32> = 0 ..< 0xFFFFFF
|
let allHexes: CountableRange<UInt32> = 0 ..< 0xFFFFFF
|
||||||
let impreciseConversions = allHexes.filter { hex in
|
let impreciseConversions = allHexes.filter { hex in
|
||||||
|
@ -90,6 +97,15 @@ class DynamicColorTests: XCTestCase {
|
||||||
XCTAssert(impreciseConversions.count == 0, "Imprecise hex convertions on \(impreciseConversions.count > 50 ? " more than 50 entries (\(impreciseConversions.count) entries exactly)" : ": \(impreciseConversions)")")
|
XCTAssert(impreciseConversions.count == 0, "Imprecise hex convertions on \(impreciseConversions.count > 50 ? " more than 50 entries (\(impreciseConversions.count) entries exactly)" : ": \(impreciseConversions)")")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testOverflowedColor() {
|
||||||
|
let positiveColor = DynamicColor(hex: 0xffffffff)
|
||||||
|
let alphaColor = DynamicColor(hex: 0xffffffff)
|
||||||
|
|
||||||
|
XCTAssert(positiveColor.toHex() == 0xffffff, "Color string should be equal to 0xffffff")
|
||||||
|
XCTAssert(alphaColor.toHex() == 0xffffff, "Color string should be equal to 0xffffff")
|
||||||
|
XCTAssertEqual(alphaColor.alphaComponent, 1, accuracy: 0.01, "Alpha component should be equal to 0.5 (not \(alphaColor.alphaComponent))")
|
||||||
|
}
|
||||||
|
|
||||||
func testIsEqualToHexString() {
|
func testIsEqualToHexString() {
|
||||||
let red = DynamicColor.red
|
let red = DynamicColor.red
|
||||||
let blue = DynamicColor.blue
|
let blue = DynamicColor.blue
|
||||||
|
|
Loading…
Reference in New Issue