diff --git a/LetterAvatarKit.podspec b/LetterAvatarKit.podspec index 425145a..0f88e05 100644 --- a/LetterAvatarKit.podspec +++ b/LetterAvatarKit.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'LetterAvatarKit' - s.platform = :ios, '9.0' - s.version = '1.0.0' + s.platform = :ios, '8.0' + s.version = '1.0.1' s.license = { :type => 'MIT' } s.homepage = 'https://github.com/vpeschenkov/LetterAvatarKit' s.authors = { 'Victor Peschenkov' => 'nerevarxx@gmail.com' } diff --git a/LetterAvatarKit.xcodeproj/project.pbxproj b/LetterAvatarKit.xcodeproj/project.pbxproj index 22dcd6d..5668d70 100644 --- a/LetterAvatarKit.xcodeproj/project.pbxproj +++ b/LetterAvatarKit.xcodeproj/project.pbxproj @@ -7,13 +7,17 @@ objects = { /* Begin PBXBuildFile section */ - EB28495F1F87F28E00286070 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EB28495E1F87F28E00286070 /* Assets.xcassets */; }; EB516B651F8810D200BEA1F2 /* CharacterExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B621F8810D200BEA1F2 /* CharacterExtension.swift */; }; EB516B661F8810D200BEA1F2 /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B631F8810D200BEA1F2 /* UIColorExtension.swift */; }; EB516B671F8810D200BEA1F2 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B641F8810D200BEA1F2 /* UIImageExtension.swift */; }; EB516B6C1F88110A00BEA1F2 /* CharacterExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B691F88110A00BEA1F2 /* CharacterExtensionTests.swift */; }; EB516B6D1F88110A00BEA1F2 /* UIColorExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B6A1F88110A00BEA1F2 /* UIColorExtensionTests.swift */; }; EB516B6E1F88110A00BEA1F2 /* UIImageExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB516B6B1F88110A00BEA1F2 /* UIImageExtensionTests.swift */; }; + EB821DF61F98B906009B3775 /* LetterAvatarEmptyTestImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EB821DF21F98B906009B3775 /* LetterAvatarEmptyTestImage@2x.png */; }; + EB821DF71F98B906009B3775 /* LetterAvatarEmptyTestImage@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = EB821DF31F98B906009B3775 /* LetterAvatarEmptyTestImage@3x.png */; }; + EB821DF81F98B906009B3775 /* LetterAvatarTestImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EB821DF41F98B906009B3775 /* LetterAvatarTestImage@2x.png */; }; + EB821DF91F98B906009B3775 /* LetterAvatarTestImage@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = EB821DF51F98B906009B3775 /* LetterAvatarTestImage@3x.png */; }; + EB821DFC1F98C233009B3775 /* UIImage+CompareOfPixels.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB821DFB1F98C233009B3775 /* UIImage+CompareOfPixels.swift */; }; EB8EC4131F85929E000B7641 /* LetterAvatarKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB8EC4091F85929E000B7641 /* LetterAvatarKit.framework */; }; EB8EC4181F85929E000B7641 /* LetterAvatarBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB8EC4171F85929E000B7641 /* LetterAvatarBuilderTests.swift */; }; EB8EC41A1F85929E000B7641 /* LetterAvatarKit.h in Headers */ = {isa = PBXBuildFile; fileRef = EB8EC40C1F85929E000B7641 /* LetterAvatarKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -31,13 +35,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - EB28495E1F87F28E00286070 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; EB516B621F8810D200BEA1F2 /* CharacterExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterExtension.swift; sourceTree = ""; }; EB516B631F8810D200BEA1F2 /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; EB516B641F8810D200BEA1F2 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; EB516B691F88110A00BEA1F2 /* CharacterExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterExtensionTests.swift; sourceTree = ""; }; EB516B6A1F88110A00BEA1F2 /* UIColorExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtensionTests.swift; sourceTree = ""; }; EB516B6B1F88110A00BEA1F2 /* UIImageExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtensionTests.swift; sourceTree = ""; }; + EB821DF21F98B906009B3775 /* LetterAvatarEmptyTestImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LetterAvatarEmptyTestImage@2x.png"; sourceTree = ""; }; + EB821DF31F98B906009B3775 /* LetterAvatarEmptyTestImage@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LetterAvatarEmptyTestImage@3x.png"; sourceTree = ""; }; + EB821DF41F98B906009B3775 /* LetterAvatarTestImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LetterAvatarTestImage@2x.png"; sourceTree = ""; }; + EB821DF51F98B906009B3775 /* LetterAvatarTestImage@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LetterAvatarTestImage@3x.png"; sourceTree = ""; }; + EB821DFB1F98C233009B3775 /* UIImage+CompareOfPixels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CompareOfPixels.swift"; sourceTree = ""; }; EB8EC4091F85929E000B7641 /* LetterAvatarKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LetterAvatarKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EB8EC40C1F85929E000B7641 /* LetterAvatarKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LetterAvatarKit.h; sourceTree = ""; }; EB8EC40D1F85929E000B7641 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -86,6 +94,25 @@ path = Extensions; sourceTree = ""; }; + EB821DF11F98B906009B3775 /* Resources */ = { + isa = PBXGroup; + children = ( + EB821DF21F98B906009B3775 /* LetterAvatarEmptyTestImage@2x.png */, + EB821DF31F98B906009B3775 /* LetterAvatarEmptyTestImage@3x.png */, + EB821DF41F98B906009B3775 /* LetterAvatarTestImage@2x.png */, + EB821DF51F98B906009B3775 /* LetterAvatarTestImage@3x.png */, + ); + path = Resources; + sourceTree = ""; + }; + EB821DFA1F98C0D4009B3775 /* Utilities */ = { + isa = PBXGroup; + children = ( + EB821DFB1F98C233009B3775 /* UIImage+CompareOfPixels.swift */, + ); + path = Utilities; + sourceTree = ""; + }; EB8EC3FF1F85929E000B7641 = { isa = PBXGroup; children = ( @@ -118,9 +145,10 @@ EB8EC4161F85929E000B7641 /* LetterAvatarKitTests */ = { isa = PBXGroup; children = ( + EB821DFA1F98C0D4009B3775 /* Utilities */, + EB821DF11F98B906009B3775 /* Resources */, EB516B681F88110A00BEA1F2 /* Extensions */, EB8EC4171F85929E000B7641 /* LetterAvatarBuilderTests.swift */, - EB28495E1F87F28E00286070 /* Assets.xcassets */, EB8EC4191F85929E000B7641 /* Info.plist */, ); path = LetterAvatarKitTests; @@ -227,7 +255,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - EB28495F1F87F28E00286070 /* Assets.xcassets in Resources */, + EB821DF91F98B906009B3775 /* LetterAvatarTestImage@3x.png in Resources */, + EB821DF71F98B906009B3775 /* LetterAvatarEmptyTestImage@3x.png in Resources */, + EB821DF81F98B906009B3775 /* LetterAvatarTestImage@2x.png in Resources */, + EB821DF61F98B906009B3775 /* LetterAvatarEmptyTestImage@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -252,6 +283,7 @@ EB8EC4181F85929E000B7641 /* LetterAvatarBuilderTests.swift in Sources */, EB516B6D1F88110A00BEA1F2 /* UIColorExtensionTests.swift in Sources */, EB516B6C1F88110A00BEA1F2 /* CharacterExtensionTests.swift in Sources */, + EB821DFC1F98C233009B3775 /* UIImage+CompareOfPixels.swift in Sources */, EB516B6E1F88110A00BEA1F2 /* UIImageExtensionTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/LetterAvatarKit/Info.plist b/LetterAvatarKit/Info.plist index 4c0d218..139f35e 100644 --- a/LetterAvatarKit/Info.plist +++ b/LetterAvatarKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.0 + 1.0.1 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/LetterAvatarKit/LetterAvatarBuilder.swift b/LetterAvatarKit/LetterAvatarBuilder.swift index 81bbc6c..ae4468b 100644 --- a/LetterAvatarKit/LetterAvatarBuilder.swift +++ b/LetterAvatarKit/LetterAvatarBuilder.swift @@ -98,9 +98,9 @@ open class LetterAvatarBuilder: NSObject { let lettersSize = letters.size(withAttributes: attributes) #else let attributes = [ - NSParagraphStyleAttributeName: style, - NSFontAttributeName: letterFont.withSize(min(size.height, size.width) / 2.0), - NSForegroundColorAttributeName: letterColor + NSParagraphStyleAttributeName: style, + NSFontAttributeName: letterFont.withSize(min(size.height, size.width) / 2.0), + NSForegroundColorAttributeName: letterColor ] let lettersSize = letters.size(attributes: attributes) diff --git a/LetterAvatarKitExample/LetterAvatarKitExample.xcodeproj/project.pbxproj b/LetterAvatarKitExample/LetterAvatarKitExample.xcodeproj/project.pbxproj index b1ea0d3..16e7cc0 100644 --- a/LetterAvatarKitExample/LetterAvatarKitExample.xcodeproj/project.pbxproj +++ b/LetterAvatarKitExample/LetterAvatarKitExample.xcodeproj/project.pbxproj @@ -352,6 +352,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = LetterAvatarKitExample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.peschenkov.LetterAvatarKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -367,6 +368,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; INFOPLIST_FILE = LetterAvatarKitExample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.peschenkov.LetterAvatarKitExample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/LetterAvatarKitExample/Podfile.lock b/LetterAvatarKitExample/Podfile.lock index d5a53da..e31cb34 100644 --- a/LetterAvatarKitExample/Podfile.lock +++ b/LetterAvatarKitExample/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - LetterAvatarKit (1.0.0) + - LetterAvatarKit (1.0.1) DEPENDENCIES: - LetterAvatarKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LetterAvatarKit: 17cba94f8f47810185656869b022d1301e68de3f + LetterAvatarKit: 3f39edc7f5d6c53b9f6ec9169bad73e044684049 PODFILE CHECKSUM: 407d67c5c51bb4907e98b407342cb20aaddc7148 diff --git a/LetterAvatarKitExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json b/LetterAvatarKitExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json index 859d644..970f2b5 100644 --- a/LetterAvatarKitExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json +++ b/LetterAvatarKitExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json @@ -3,7 +3,7 @@ "platforms": { "ios": "8.0" }, - "version": "1.0.0", + "version": "1.0.1", "license": { "type": "MIT" }, @@ -11,10 +11,10 @@ "authors": { "Victor Peschenkov": "nerevarxx@gmail.com" }, - "summary": "hh", + "summary": "UIImage extension that generates letter-based avatars written in Swift.", "source": { "git": "https://github.com/vpeschenkov/LetterAvatarKit.git", - "tag": "1.0.0" + "tag": "1.0.1" }, "source_files": [ "LetterAvatarKit/*.{h,swift}", @@ -24,8 +24,5 @@ "frameworks": [ "Foundation", "UIKit" - ], - "xcconfig": { - "SWIFT_VERSION": "4.0" - } + ] } diff --git a/LetterAvatarKitExample/Pods/Manifest.lock b/LetterAvatarKitExample/Pods/Manifest.lock index d5a53da..e31cb34 100644 --- a/LetterAvatarKitExample/Pods/Manifest.lock +++ b/LetterAvatarKitExample/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - LetterAvatarKit (1.0.0) + - LetterAvatarKit (1.0.1) DEPENDENCIES: - LetterAvatarKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LetterAvatarKit: 17cba94f8f47810185656869b022d1301e68de3f + LetterAvatarKit: 3f39edc7f5d6c53b9f6ec9169bad73e044684049 PODFILE CHECKSUM: 407d67c5c51bb4907e98b407342cb20aaddc7148 diff --git a/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/Info.plist b/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/Info.plist index 2243fe6..3c175b6 100644 --- a/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/Info.plist +++ b/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.0 + 1.0.1 CFBundleSignature ???? CFBundleVersion diff --git a/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig b/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig index c6c3f8d..40d6704 100644 --- a/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig +++ b/LetterAvatarKitExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig @@ -9,4 +9,3 @@ PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.debug.xcconfig b/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.debug.xcconfig index 0e38e80..e8cea3b 100644 --- a/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.debug.xcconfig +++ b/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.debug.xcconfig @@ -9,4 +9,3 @@ PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.release.xcconfig b/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.release.xcconfig index 0e38e80..e8cea3b 100644 --- a/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.release.xcconfig +++ b/LetterAvatarKitExample/Pods/Target Support Files/Pods-LetterAvatarKitExample/Pods-LetterAvatarKitExample.release.xcconfig @@ -9,4 +9,3 @@ PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitObjcExample/Podfile.lock b/LetterAvatarKitObjcExample/Podfile.lock index db3af87..df8ee48 100644 --- a/LetterAvatarKitObjcExample/Podfile.lock +++ b/LetterAvatarKitObjcExample/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - LetterAvatarKit (1.0.0) + - LetterAvatarKit (1.0.1) DEPENDENCIES: - LetterAvatarKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LetterAvatarKit: 17cba94f8f47810185656869b022d1301e68de3f + LetterAvatarKit: 3f39edc7f5d6c53b9f6ec9169bad73e044684049 PODFILE CHECKSUM: acab86cc8cc5517bd2b945abae924096efac0c35 diff --git a/LetterAvatarKitObjcExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json b/LetterAvatarKitObjcExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json index 859d644..970f2b5 100644 --- a/LetterAvatarKitObjcExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json +++ b/LetterAvatarKitObjcExample/Pods/Local Podspecs/LetterAvatarKit.podspec.json @@ -3,7 +3,7 @@ "platforms": { "ios": "8.0" }, - "version": "1.0.0", + "version": "1.0.1", "license": { "type": "MIT" }, @@ -11,10 +11,10 @@ "authors": { "Victor Peschenkov": "nerevarxx@gmail.com" }, - "summary": "hh", + "summary": "UIImage extension that generates letter-based avatars written in Swift.", "source": { "git": "https://github.com/vpeschenkov/LetterAvatarKit.git", - "tag": "1.0.0" + "tag": "1.0.1" }, "source_files": [ "LetterAvatarKit/*.{h,swift}", @@ -24,8 +24,5 @@ "frameworks": [ "Foundation", "UIKit" - ], - "xcconfig": { - "SWIFT_VERSION": "4.0" - } + ] } diff --git a/LetterAvatarKitObjcExample/Pods/Manifest.lock b/LetterAvatarKitObjcExample/Pods/Manifest.lock index db3af87..df8ee48 100644 --- a/LetterAvatarKitObjcExample/Pods/Manifest.lock +++ b/LetterAvatarKitObjcExample/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - LetterAvatarKit (1.0.0) + - LetterAvatarKit (1.0.1) DEPENDENCIES: - LetterAvatarKit (from `../`) @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LetterAvatarKit: 17cba94f8f47810185656869b022d1301e68de3f + LetterAvatarKit: 3f39edc7f5d6c53b9f6ec9169bad73e044684049 PODFILE CHECKSUM: acab86cc8cc5517bd2b945abae924096efac0c35 diff --git a/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj b/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj index 97a2310..19acc44 100644 --- a/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj +++ b/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 48; objects = { /* Begin PBXBuildFile section */ @@ -35,27 +35,27 @@ 00FBD1B5464104C8B2802C88F9929B71 /* LetterAvatarKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LetterAvatarKit.xcconfig; sourceTree = ""; }; 1483EA1276876246E7A1655BD9E2E39E /* Pods-LetterAvatarKitObjcExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LetterAvatarKitObjcExample-acknowledgements.plist"; sourceTree = ""; }; 158D56B9EDD724C8DE52BE040FC895AF /* UIColorExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; - 16F1A9A504754D1ABCE12F5D7B38C950 /* Pods_LetterAvatarKitObjcExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LetterAvatarKitObjcExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 16F1A9A504754D1ABCE12F5D7B38C950 /* Pods_LetterAvatarKitObjcExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_LetterAvatarKitObjcExample.framework; path = "Pods-LetterAvatarKitObjcExample.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 20AC1AD4EC2DAAE27D8EC98C5CA21CB6 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 20F2535D0F8EB530323ACE82251F696C /* Pods-LetterAvatarKitObjcExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LetterAvatarKitObjcExample-acknowledgements.markdown"; sourceTree = ""; }; 31B9D4B9DD74813A0DA3AF43B61A8E57 /* CharacterExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CharacterExtension.swift; sourceTree = ""; }; - 35EEB2554B69B3AF3E1A84F0FEB82416 /* Pods-LetterAvatarKitObjcExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LetterAvatarKitObjcExample.modulemap"; sourceTree = ""; }; + 35EEB2554B69B3AF3E1A84F0FEB82416 /* Pods-LetterAvatarKitObjcExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-LetterAvatarKitObjcExample.modulemap"; sourceTree = ""; }; 4789C879FC4015C20393BEA677AE7BE3 /* Pods-LetterAvatarKitObjcExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LetterAvatarKitObjcExample.release.xcconfig"; sourceTree = ""; }; 6543FC3746EA07703BE2B28233A6F4AF /* LetterAvatarKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LetterAvatarKit-prefix.pch"; sourceTree = ""; }; 711EDE325E49A8EC716F39E59BF84A38 /* UIImageExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; 7B1BCD83AC13B2ADE91342914D805D51 /* Pods-LetterAvatarKitObjcExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LetterAvatarKitObjcExample-resources.sh"; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; A81F06FA3A730238284C0D1538B69A60 /* Pods-LetterAvatarKitObjcExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LetterAvatarKitObjcExample-dummy.m"; sourceTree = ""; }; A8ABB6675AF90C5EA9D397B715889BB4 /* LetterAvatarBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LetterAvatarBuilder.swift; sourceTree = ""; }; B331B683E4ACA05EE4E28681D2973EA6 /* LetterAvatarKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LetterAvatarKit-umbrella.h"; sourceTree = ""; }; B63C6A64CF66340668996F78DA6BB482 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; B6D22B6E25820A59EB6A16E2CC3C5692 /* Pods-LetterAvatarKitObjcExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LetterAvatarKitObjcExample-umbrella.h"; sourceTree = ""; }; - BBF009C023AC24FF8F70B3F9208456E4 /* LetterAvatarKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LetterAvatarKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBF009C023AC24FF8F70B3F9208456E4 /* LetterAvatarKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LetterAvatarKit.framework; path = LetterAvatarKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CCC9089ADCF350A35E80E508E034DB91 /* LetterAvatarKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = LetterAvatarKit.h; sourceTree = ""; }; CF0D92D9FFB2E1068BF50803B5EE07CC /* LetterAvatarKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LetterAvatarKit-dummy.m"; sourceTree = ""; }; D88AAE1F92055A60CC2FC970D7D34634 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; DE9C83939DB7B6D8EDD470B7B0BB56D0 /* Pods-LetterAvatarKitObjcExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LetterAvatarKitObjcExample-frameworks.sh"; sourceTree = ""; }; - E494C3C48570CF6BFFEF4A8E271C71EE /* LetterAvatarKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LetterAvatarKit.modulemap; sourceTree = ""; }; + E494C3C48570CF6BFFEF4A8E271C71EE /* LetterAvatarKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = LetterAvatarKit.modulemap; sourceTree = ""; }; EC75467232694C1A773815FA89159748 /* Pods-LetterAvatarKitObjcExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LetterAvatarKitObjcExample.debug.xcconfig"; sourceTree = ""; }; F4C89909FD8B718FD0DE89EFADD4B678 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -165,6 +165,7 @@ CCC9089ADCF350A35E80E508E034DB91 /* LetterAvatarKit.h */, FD094A9FD0DC4E0D95833CB102D55261 /* Extensions */, ); + name = LetterAvatarKit; path = LetterAvatarKit; sourceTree = ""; }; @@ -193,6 +194,7 @@ 158D56B9EDD724C8DE52BE040FC895AF /* UIColorExtension.swift */, 711EDE325E49A8EC716F39E59BF84A38 /* UIImageExtension.swift */, ); + name = Extensions; path = Extensions; sourceTree = ""; }; @@ -261,7 +263,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0900; + LastUpgradeCheck = 0700; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -318,7 +320,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = EC75467232694C1A773815FA89159748 /* Pods-LetterAvatarKitObjcExample.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -364,9 +365,7 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -374,21 +373,15 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", @@ -414,7 +407,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4789C879FC4015C20393BEA677AE7BE3 /* Pods-LetterAvatarKitObjcExample.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -476,7 +468,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -511,7 +503,7 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -528,9 +520,7 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -538,20 +528,14 @@ CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_RELEASE=1", "$(inherited)", diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/Info.plist b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/Info.plist index 2243fe6..3c175b6 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/Info.plist +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.0 + 1.0.1 CFBundleSignature ???? CFBundleVersion diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig index c6c3f8d..40d6704 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig @@ -9,4 +9,3 @@ PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig index d883796..f736f72 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig @@ -9,4 +9,3 @@ PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig index d883796..f736f72 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig @@ -9,4 +9,3 @@ PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_VERSION = 4.0 diff --git a/LetterAvatarKitTests/Assets.xcassets/Contents.json b/LetterAvatarKitTests/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/LetterAvatarKitTests/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/Contents.json b/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/Contents.json deleted file mode 100644 index ed410fb..0000000 --- a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LetterAvatarEmptyTestImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LetterAvatarEmptyTestImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/LetterAvatarEmptyTestImage@2x.png b/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/LetterAvatarEmptyTestImage@2x.png deleted file mode 100644 index 1487a0f..0000000 Binary files a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/LetterAvatarEmptyTestImage@2x.png and /dev/null differ diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/Contents.json b/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/Contents.json deleted file mode 100644 index 099704d..0000000 --- a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LetterAvatarTestImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LetterAvatarTestImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/LetterAvatarTestImage@2x.png b/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/LetterAvatarTestImage@2x.png deleted file mode 100644 index 0e52610..0000000 Binary files a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/LetterAvatarTestImage@2x.png and /dev/null differ diff --git a/LetterAvatarKitTests/Extensions/UIImageExtensionTests.swift b/LetterAvatarKitTests/Extensions/UIImageExtensionTests.swift index 536d7e2..99a35f1 100644 --- a/LetterAvatarKitTests/Extensions/UIImageExtensionTests.swift +++ b/LetterAvatarKitTests/Extensions/UIImageExtensionTests.swift @@ -41,7 +41,7 @@ class UIImageExtensionTests: XCTestCase { ) XCTAssertNotNil(testAvatarImage) - XCTAssertEqual(UIImagePNGRepresentation(avatarImage!), UIImagePNGRepresentation(testAvatarImage!)) + XCTAssert(avatarImage!.isEqualToAnotherImage(image: testAvatarImage!)) } func testAvatarBuildWithSize() { @@ -68,6 +68,6 @@ class UIImageExtensionTests: XCTestCase { XCTAssertTrue(avatarImage?.size.width == configuration.size.width) XCTAssertTrue(avatarImage?.size.height == configuration.size.height) - XCTAssertEqual(UIImagePNGRepresentation(avatarImage!), UIImagePNGRepresentation(testAvatarImage!)) + XCTAssert(avatarImage!.isEqualToAnotherImage(image: testAvatarImage!)) } } diff --git a/LetterAvatarKitTests/LetterAvatarBuilderTests.swift b/LetterAvatarKitTests/LetterAvatarBuilderTests.swift index 1354329..6f39896 100644 --- a/LetterAvatarKitTests/LetterAvatarBuilderTests.swift +++ b/LetterAvatarKitTests/LetterAvatarBuilderTests.swift @@ -40,7 +40,7 @@ class LetterAvatarBuilderTests: XCTestCase { in: bundle, compatibleWith: nil ) - XCTAssertEqual(UIImagePNGRepresentation(avatarImage!), UIImagePNGRepresentation(testAvatarImage!)) + XCTAssert(avatarImage!.isEqualToAnotherImage(image: testAvatarImage!)) } func testEmptyAvatarBuild() { @@ -55,8 +55,7 @@ class LetterAvatarBuilderTests: XCTestCase { in: bundle, compatibleWith: nil ) - - XCTAssertEqual(UIImagePNGRepresentation(avatarImage!), UIImagePNGRepresentation(testAvatarImage!)) + XCTAssert(avatarImage!.isEqualToAnotherImage(image: testAvatarImage!)) } func testAvatarBuildWithSize() { diff --git a/LetterAvatarKitTests/Resources/LetterAvatarEmptyTestImage@2x.png b/LetterAvatarKitTests/Resources/LetterAvatarEmptyTestImage@2x.png new file mode 100644 index 0000000..b96a5b1 Binary files /dev/null and b/LetterAvatarKitTests/Resources/LetterAvatarEmptyTestImage@2x.png differ diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/LetterAvatarEmptyTestImage@3x.png b/LetterAvatarKitTests/Resources/LetterAvatarEmptyTestImage@3x.png similarity index 100% rename from LetterAvatarKitTests/Assets.xcassets/LetterAvatarEmptyTestImage.imageset/LetterAvatarEmptyTestImage@3x.png rename to LetterAvatarKitTests/Resources/LetterAvatarEmptyTestImage@3x.png diff --git a/LetterAvatarKitTests/Resources/LetterAvatarTestImage@2x.png b/LetterAvatarKitTests/Resources/LetterAvatarTestImage@2x.png new file mode 100644 index 0000000..b1177df Binary files /dev/null and b/LetterAvatarKitTests/Resources/LetterAvatarTestImage@2x.png differ diff --git a/LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/LetterAvatarTestImage@3x.png b/LetterAvatarKitTests/Resources/LetterAvatarTestImage@3x.png similarity index 100% rename from LetterAvatarKitTests/Assets.xcassets/LetterAvatarTestImage.imageset/LetterAvatarTestImage@3x.png rename to LetterAvatarKitTests/Resources/LetterAvatarTestImage@3x.png diff --git a/LetterAvatarKitTests/Utilities/UIImage+CompareOfPixels.swift b/LetterAvatarKitTests/Utilities/UIImage+CompareOfPixels.swift new file mode 100644 index 0000000..ae4385e --- /dev/null +++ b/LetterAvatarKitTests/Utilities/UIImage+CompareOfPixels.swift @@ -0,0 +1,75 @@ +// +// UIImage+CompareOfPixels.swift +// LetterAvatarKitTests +// +// Copyright 2017 Victor Peschenkov +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// o this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import UIKit +import Foundation + +extension UIImage { + func isEqualToAnotherImage(image: UIImage, density: CGFloat = 0.001, accuracy: Double = 0.01) -> Bool { + if !self.size.equalTo(image.size) { + return false + } + + let pixelsWidth: Int = self.cgImage!.width + let pixelsHeight: Int = self.cgImage!.height + let pixelsToCompare: Int = Int(CGFloat(pixelsWidth * pixelsHeight) * density) + + var pixel1 = UInt() + let context1 = CGContext( + data: &pixel1, + width: 1, + height: 1, + bitsPerComponent: 8, + bytesPerRow: 4, + space: CGColorSpaceCreateDeviceRGB(), + bitmapInfo: CGImageAlphaInfo.noneSkipFirst.rawValue + ) + + var pixel2 = UInt() + let context2 = CGContext(data: &pixel2, + width: 1, + height: 1, + bitsPerComponent: 8, + bytesPerRow: 4, + space: CGColorSpaceCreateDeviceRGB(), + bitmapInfo: CGImageAlphaInfo.noneSkipFirst.rawValue + ) + + var misses = 0 + for _ in 0..