From 2361be54b0c8a7312558edcd1aa37ee42e9cc7a1 Mon Sep 17 00:00:00 2001 From: DJYohann Date: Wed, 24 May 2023 18:44:09 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App/App.xcodeproj/project.pbxproj | 582 ++++++++++++++++++ .../xcschemes/xcschememanagement.plist | 14 + src/App/App/AppApp.swift | 17 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + src/App/App/Assets.xcassets/Contents.json | 6 + src/App/App/ContentView.swift | 26 + .../Preview Assets.xcassets/Contents.json | 6 + src/App/AppTests/AppTests.swift | 36 ++ src/App/AppUITests/AppUITests.swift | 41 ++ .../AppUITests/AppUITestsLaunchTests.swift | 32 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 13869 bytes .../AverageCalculatorAppUITests.swift | 41 ++ ...erageCalculatorAppUITestsLaunchTests.swift | 32 + 16 files changed, 872 insertions(+) create mode 100644 src/App/App.xcodeproj/project.pbxproj create mode 100644 src/App/App.xcodeproj/xcuserdata/djyohann.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 src/App/App/AppApp.swift create mode 100644 src/App/App/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 src/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 src/App/App/Assets.xcassets/Contents.json create mode 100644 src/App/App/ContentView.swift create mode 100644 src/App/App/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 src/App/AppTests/AppTests.swift create mode 100644 src/App/AppUITests/AppUITests.swift create mode 100644 src/App/AppUITests/AppUITestsLaunchTests.swift create mode 100644 src/AverageCalculator.xcworkspace/contents.xcworkspacedata create mode 100644 src/AverageCalculator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 src/AverageCalculator.xcworkspace/xcuserdata/djyohann.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITests.swift create mode 100644 src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITestsLaunchTests.swift diff --git a/src/App/App.xcodeproj/project.pbxproj b/src/App/App.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8f91dec --- /dev/null +++ b/src/App/App.xcodeproj/project.pbxproj @@ -0,0 +1,582 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 1E0D88E32A1E759A00786FE3 /* AppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0D88E22A1E759A00786FE3 /* AppApp.swift */; }; + 1E0D88E52A1E759A00786FE3 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0D88E42A1E759A00786FE3 /* ContentView.swift */; }; + 1E0D88E72A1E759F00786FE3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1E0D88E62A1E759F00786FE3 /* Assets.xcassets */; }; + 1E0D88EA2A1E759F00786FE3 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1E0D88E92A1E759F00786FE3 /* Preview Assets.xcassets */; }; + 1E0D88F42A1E759F00786FE3 /* AppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0D88F32A1E759F00786FE3 /* AppTests.swift */; }; + 1E0D88FE2A1E75A000786FE3 /* AppUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0D88FD2A1E75A000786FE3 /* AppUITests.swift */; }; + 1E0D89002A1E75A000786FE3 /* AppUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0D88FF2A1E75A000786FE3 /* AppUITestsLaunchTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1E0D88F02A1E759F00786FE3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1E0D88D72A1E759900786FE3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E0D88DE2A1E759A00786FE3; + remoteInfo = App; + }; + 1E0D88FA2A1E759F00786FE3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1E0D88D72A1E759900786FE3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E0D88DE2A1E759A00786FE3; + remoteInfo = App; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1E0D88DF2A1E759A00786FE3 /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E0D88E22A1E759A00786FE3 /* AppApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppApp.swift; sourceTree = ""; }; + 1E0D88E42A1E759A00786FE3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 1E0D88E62A1E759F00786FE3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 1E0D88E92A1E759F00786FE3 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 1E0D88EF2A1E759F00786FE3 /* AppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E0D88F32A1E759F00786FE3 /* AppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTests.swift; sourceTree = ""; }; + 1E0D88F92A1E759F00786FE3 /* AppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E0D88FD2A1E75A000786FE3 /* AppUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUITests.swift; sourceTree = ""; }; + 1E0D88FF2A1E75A000786FE3 /* AppUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUITestsLaunchTests.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1E0D88DC2A1E759A00786FE3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88EC2A1E759F00786FE3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88F62A1E759F00786FE3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1E0D88D62A1E759900786FE3 = { + isa = PBXGroup; + children = ( + 1E0D88E12A1E759A00786FE3 /* App */, + 1E0D88F22A1E759F00786FE3 /* AppTests */, + 1E0D88FC2A1E75A000786FE3 /* AppUITests */, + 1E0D88E02A1E759A00786FE3 /* Products */, + ); + sourceTree = ""; + }; + 1E0D88E02A1E759A00786FE3 /* Products */ = { + isa = PBXGroup; + children = ( + 1E0D88DF2A1E759A00786FE3 /* App.app */, + 1E0D88EF2A1E759F00786FE3 /* AppTests.xctest */, + 1E0D88F92A1E759F00786FE3 /* AppUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 1E0D88E12A1E759A00786FE3 /* App */ = { + isa = PBXGroup; + children = ( + 1E0D88E22A1E759A00786FE3 /* AppApp.swift */, + 1E0D88E42A1E759A00786FE3 /* ContentView.swift */, + 1E0D88E62A1E759F00786FE3 /* Assets.xcassets */, + 1E0D88E82A1E759F00786FE3 /* Preview Content */, + ); + path = App; + sourceTree = ""; + }; + 1E0D88E82A1E759F00786FE3 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 1E0D88E92A1E759F00786FE3 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 1E0D88F22A1E759F00786FE3 /* AppTests */ = { + isa = PBXGroup; + children = ( + 1E0D88F32A1E759F00786FE3 /* AppTests.swift */, + ); + path = AppTests; + sourceTree = ""; + }; + 1E0D88FC2A1E75A000786FE3 /* AppUITests */ = { + isa = PBXGroup; + children = ( + 1E0D88FD2A1E75A000786FE3 /* AppUITests.swift */, + 1E0D88FF2A1E75A000786FE3 /* AppUITestsLaunchTests.swift */, + ); + path = AppUITests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1E0D88DE2A1E759A00786FE3 /* App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E0D89032A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "App" */; + buildPhases = ( + 1E0D88DB2A1E759A00786FE3 /* Sources */, + 1E0D88DC2A1E759A00786FE3 /* Frameworks */, + 1E0D88DD2A1E759A00786FE3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = App; + productName = App; + productReference = 1E0D88DF2A1E759A00786FE3 /* App.app */; + productType = "com.apple.product-type.application"; + }; + 1E0D88EE2A1E759F00786FE3 /* AppTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E0D89062A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "AppTests" */; + buildPhases = ( + 1E0D88EB2A1E759F00786FE3 /* Sources */, + 1E0D88EC2A1E759F00786FE3 /* Frameworks */, + 1E0D88ED2A1E759F00786FE3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 1E0D88F12A1E759F00786FE3 /* PBXTargetDependency */, + ); + name = AppTests; + productName = AppTests; + productReference = 1E0D88EF2A1E759F00786FE3 /* AppTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 1E0D88F82A1E759F00786FE3 /* AppUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E0D89092A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "AppUITests" */; + buildPhases = ( + 1E0D88F52A1E759F00786FE3 /* Sources */, + 1E0D88F62A1E759F00786FE3 /* Frameworks */, + 1E0D88F72A1E759F00786FE3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 1E0D88FB2A1E759F00786FE3 /* PBXTargetDependency */, + ); + name = AppUITests; + productName = AppUITests; + productReference = 1E0D88F92A1E759F00786FE3 /* AppUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 1E0D88D72A1E759900786FE3 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1430; + LastUpgradeCheck = 1430; + TargetAttributes = { + 1E0D88DE2A1E759A00786FE3 = { + CreatedOnToolsVersion = 14.3; + }; + 1E0D88EE2A1E759F00786FE3 = { + CreatedOnToolsVersion = 14.3; + TestTargetID = 1E0D88DE2A1E759A00786FE3; + }; + 1E0D88F82A1E759F00786FE3 = { + CreatedOnToolsVersion = 14.3; + TestTargetID = 1E0D88DE2A1E759A00786FE3; + }; + }; + }; + buildConfigurationList = 1E0D88DA2A1E759900786FE3 /* Build configuration list for PBXProject "App" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 1E0D88D62A1E759900786FE3; + productRefGroup = 1E0D88E02A1E759A00786FE3 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1E0D88DE2A1E759A00786FE3 /* App */, + 1E0D88EE2A1E759F00786FE3 /* AppTests */, + 1E0D88F82A1E759F00786FE3 /* AppUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1E0D88DD2A1E759A00786FE3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E0D88EA2A1E759F00786FE3 /* Preview Assets.xcassets in Resources */, + 1E0D88E72A1E759F00786FE3 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88ED2A1E759F00786FE3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88F72A1E759F00786FE3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1E0D88DB2A1E759A00786FE3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E0D88E52A1E759A00786FE3 /* ContentView.swift in Sources */, + 1E0D88E32A1E759A00786FE3 /* AppApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88EB2A1E759F00786FE3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E0D88F42A1E759F00786FE3 /* AppTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E0D88F52A1E759F00786FE3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E0D89002A1E75A000786FE3 /* AppUITestsLaunchTests.swift in Sources */, + 1E0D88FE2A1E75A000786FE3 /* AppUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1E0D88F12A1E759F00786FE3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E0D88DE2A1E759A00786FE3 /* App */; + targetProxy = 1E0D88F02A1E759F00786FE3 /* PBXContainerItemProxy */; + }; + 1E0D88FB2A1E759F00786FE3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E0D88DE2A1E759A00786FE3 /* App */; + targetProxy = 1E0D88FA2A1E759F00786FE3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1E0D89012A1E75A000786FE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + 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_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 1E0D89022A1E75A000786FE3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + 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_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1E0D89042A1E75A000786FE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"App/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.App; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1E0D89052A1E75A000786FE3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"App/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.App; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 1E0D89072A1E75A000786FE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.AppTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/App"; + }; + name = Debug; + }; + 1E0D89082A1E75A000786FE3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.AppTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/App"; + }; + name = Release; + }; + 1E0D890A2A1E75A000786FE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.AppUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App; + }; + name = Debug; + }; + 1E0D890B2A1E75A000786FE3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = djyohann.AppUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = App; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1E0D88DA2A1E759900786FE3 /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E0D89012A1E75A000786FE3 /* Debug */, + 1E0D89022A1E75A000786FE3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E0D89032A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E0D89042A1E75A000786FE3 /* Debug */, + 1E0D89052A1E75A000786FE3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E0D89062A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "AppTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E0D89072A1E75A000786FE3 /* Debug */, + 1E0D89082A1E75A000786FE3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E0D89092A1E75A000786FE3 /* Build configuration list for PBXNativeTarget "AppUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E0D890A2A1E75A000786FE3 /* Debug */, + 1E0D890B2A1E75A000786FE3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 1E0D88D72A1E759900786FE3 /* Project object */; +} diff --git a/src/App/App.xcodeproj/xcuserdata/djyohann.xcuserdatad/xcschemes/xcschememanagement.plist b/src/App/App.xcodeproj/xcuserdata/djyohann.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..b04f406 --- /dev/null +++ b/src/App/App.xcodeproj/xcuserdata/djyohann.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + App.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/src/App/App/AppApp.swift b/src/App/App/AppApp.swift new file mode 100644 index 0000000..448d169 --- /dev/null +++ b/src/App/App/AppApp.swift @@ -0,0 +1,17 @@ +// +// AppApp.swift +// App +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import SwiftUI + +@main +struct AppApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/src/App/App/Assets.xcassets/AccentColor.colorset/Contents.json b/src/App/App/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/src/App/App/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/src/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/src/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/src/App/App/Assets.xcassets/Contents.json b/src/App/App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/src/App/App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/src/App/App/ContentView.swift b/src/App/App/ContentView.swift new file mode 100644 index 0000000..0fbad95 --- /dev/null +++ b/src/App/App/ContentView.swift @@ -0,0 +1,26 @@ +// +// ContentView.swift +// App +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundColor(.accentColor) + Text("Hello, world!") + } + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/src/App/App/Preview Content/Preview Assets.xcassets/Contents.json b/src/App/App/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/src/App/App/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/src/App/AppTests/AppTests.swift b/src/App/AppTests/AppTests.swift new file mode 100644 index 0000000..7577a36 --- /dev/null +++ b/src/App/AppTests/AppTests.swift @@ -0,0 +1,36 @@ +// +// AppTests.swift +// AppTests +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import XCTest +@testable import App + +final class AppTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/src/App/AppUITests/AppUITests.swift b/src/App/AppUITests/AppUITests.swift new file mode 100644 index 0000000..1da6002 --- /dev/null +++ b/src/App/AppUITests/AppUITests.swift @@ -0,0 +1,41 @@ +// +// AppUITests.swift +// AppUITests +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import XCTest + +final class AppUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/src/App/AppUITests/AppUITestsLaunchTests.swift b/src/App/AppUITests/AppUITestsLaunchTests.swift new file mode 100644 index 0000000..77183f8 --- /dev/null +++ b/src/App/AppUITests/AppUITestsLaunchTests.swift @@ -0,0 +1,32 @@ +// +// AppUITestsLaunchTests.swift +// AppUITests +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import XCTest + +final class AppUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/src/AverageCalculator.xcworkspace/contents.xcworkspacedata b/src/AverageCalculator.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..dba724a --- /dev/null +++ b/src/AverageCalculator.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/src/AverageCalculator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/AverageCalculator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/src/AverageCalculator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/src/AverageCalculator.xcworkspace/xcuserdata/djyohann.xcuserdatad/UserInterfaceState.xcuserstate b/src/AverageCalculator.xcworkspace/xcuserdata/djyohann.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fc60ac6da6ed3ef91e4115eac3f42cf34c3b4807 GIT binary patch literal 13869 zcmdsdd0dmn*8j{r!HoccgoHp6hzS9*v2R+JKtNGMWD`+|5duUZ!6dlUE<-n4YpZte z?Iyw2R=ZbQm+p(*Zd=9H)>^gJuC~=K_qNvdw(pteAuN^NpPzd_zxR(9K9D@~oSAcG z<}BZHW)^q0yZwQTjCT=61aU}&!q6x*8jY*hFL(L;Zm(ya-sx*pKFhr*Ezr3$mhg zlz}o)7Rp9Br~pktb5IqkMm4Aw)uFkl9?e5ds2RCX3-Td93ZO2u99@VmMwg%~(3R*K zv=*&LH=x_l?dWf46Y4>m(f#NF^b&d*y@K|lSJ7+eb@T>$6a5{%h2BQ*qCWHiI)pw% zhtV-~8hwYpM?at+(Lc~X(H|ILj0qlv$KY@rfunIOR%0zr#s-{)vvDDwg7)L7*p8>; zGCT`c;2KOtRUxBa0SK({$db|POf^Wrl;`{Ixd_R5w zZ^hg34!jHR#?Rwd@H==P-j5ICkMI%vPy7@98K1$w;IsHw{2Trk{vH28Mw2mQEQuxx z5=Rn9A}J&j$V74hnM5X&DP$_Kks?w|>|{EbO=?LUX(SG^h&V|zaS<=+B+H18_(_0V zL@p+mklV=Z*NjcCiy#gm%K*~ zlVjv#a*}*az9HX|@5#^P42L+(5su?T+*ocL7s zH;J=xc5VhYldIrrxLU4`^Kf3SlUv65I6oKQy13=s3T`F0io1|o&0WM@%w57=%3aP~ z!(GR1sMUMA+S?DH2o#B;kOWDQd~QXxb*XEWzX3k`wXaU!)b8~AgD4usP(ryNlA%~C zqSsTML!!^lEzK;B1!hCyPNnu7&cCkYuE3=o(_4=0j zJDp7~ySJ&U!{rHt7{{aW$hZY1AQe(04N62wNK3=$C_0*sp=0Sd8omYTkRJXF@G2Fh zQ8A5xzeso`p>fpcki@a^-JWLeiW=wQBB!s+U+4C_7q`0_2VRu=oEP*P;cDJadd6y+5aT8cAEZ1(Kz9D8eX2p=A?{^%}J{>b28v-VMfNq7x$rD*w#Fh&o;FgB%K{SI&pEx z3t_^E!bXkG|4+ToF-hE*vE#zU5s^`n=oqOiR<4Ls#wV!Mn#3gSc%44kkdm5aG?`7N z^bAu*R(4Kqo0j!QNT83~=MTWXbb39_Y^@C;@>x!gv(?2kt&;gye}M66hJWrBHzOQDm>PGx zs|s8$3=Eqs$WZQF7pYD((44pfZqSW2q?iW_bAyI{R4-O$Ln;@%ls3h(SUDI41m(Ll1h*HlO z%yPQf7f`#h=9RE~#mt;5cxzCfJMe%Cm)YxJHf3dY@CDF!ny)kTwa5q71s2Lt68(G> zSRw{vjf#$Wj)qe-mW~}emX4OdmvP`F#!%&$M^e|7UtMWi}Nj+nVEJ=PQIOq^!3EA9Vwb#NHO(^h6 zGLa1;tP7&86Scx;F?_Z|4DN#ePKdu=c$1VQ13&lwrn91z&~pXfXDLMQP8gvHfsczB z>TLuy1i7Fw60??ek7Uu*urmGJAEv2R<9-Jp5HPm;sHZF;og0nweQr zXfL&8TQW*Z>=s*=9ds-^BimAvTaZ(bo1a-^&n})1o-?$IFtes+FxjEJf=zSYZD}oO zb7w38x04vM8$pnvg#B>_mSCv+02eXLFu|h_Cm7-_sGKTj>|eU|zfv)f+S>_I4`mzl z&Vgp1e?djH-3<}S>v8&41$}cGGgjthz)yDm;{1%f3;>eRC>}y=8bHN-RE91B!1n}t z0YKfycq{<4LI7n80D4`CufsRvCvYD=g?}c9h>4kG15hd>Gs!FfNL8c;AW}VPAPWH| zImu!kCbf_@vV<%p9RQe?@nC5qxfOuWN8}eSiJQhb0HR#XeZu`LiW131YLP)SNi;=d z6BUbQh-Ql#L`|YAL~BGFM7N6W5p5McD0*1*sOWLgcF`WuLDAQuZ$+m?--pG8>BG{( z3c@Ca*~41G)`azj-5a(g?18Ws!#)f<7IrG^`>>xzaic~d{)b@U6U=Vd&!|`$)rShv z1T+y{Fp_FRD4Nw3VBw!d{$3!PgeHTVWKV-C-4CdyqUj9R*iaFexgC|DQZ!A_Nl@xo zw#!>!!DpbEs2t4#bTb>UjFMWYm1coY&1Sep0!CZi=3PbK zqXlRoji(7z)r%bP=%i|RG%;C|>Y0^Wq5n*Gz&gOlIuKAm&}vsZ2;^!Wcnew0G@rMt zQ+NUT=?`&i1&?UljM|VJEkR4Eh9=S^s@;q_kOw?o2OUrKG#UN_XBh;`fXl}tvZ7V9 zKngylMwdJNfdNje8EmT7(=sA)oG^x~xwdThI3amffVY)z+C+7Nf~-at4L2&Z8ch~} z=rESmUf32ey3jC}qHZMbL6jPL&}B4*VQ2)8#WkJIK-)Zs5w4Zf-JU>jTzIvu zv$FyIYRhT>8T%!qkHNu___Ux34)QO;-Cy1p3DZRFF>|p zXM0muJ5zTU8AAR@&HW7f0Cb)&yF0!=#R0PfO;Dx&OJ>TEmIg5##v!%p+7+z0sZd2OXakw4djUR&=!|V8Ms4yJFU*R(ZlTlDh zNFw=AKbQ@bf>zQ_JmgBU7ODXck{x6>dt08WAT8AWE!ZbFZjSh)) zFqRHLlU}re`O%QGyb;}uj6LWkYVJYvAB6Cw^c7GpV7YU-?O*B&w z{9be)Agq1}VDtH$t9sGBXbYMQ_?3Sg(76!ft)NiGZD<>M5OnKd^ay$sJ%%0!aJ3!n zpgA;`=FxmwKnv*vI+0#LC(+5<&{Lp-yU=d52R#j{_$+!3)bRy6h1zHlEv9x_Lg&*C zdIi0bUd0FAP*fd^+trZe2g;bAt^|+mkQj?xEnc6i*xS+R^tt_B4<8L{VFCKg-rrj{~Wm5k`S9`$S2~`lrsM6=|fDk8OVSuN9l7rU-$O?3w0$u1eU+RRc zU}!J{wSZ`7ceOZyf!(#Zt5v`*N&QWOX~pn<{>E9(mF^C}*vmg}l}AlO+UlI`T`mchAUajp{P)m7$esuK1i?j29@@|_ zyVK<<^FXfbmmtVU`q!h})e@-jR=Hc-0)j$)gnE0>5n4(!LrU^7`T`m61NHa>oj{+W z&(PVR67wf? zmVv;Z(HZm$t)R1MWiR>_baf}41G;Hr;>57o+x-2kc`yNBAf%x1l3zYRefCw5GrF5X zE&R%04u|z%5v`&%`%x4gO{@8ZhYVyKVC)JIEr`dW$--`I!QvpZJfUYKtSOG7bzrDC z2Kq{|41iTr7nrsuFl;%POmr@t_b!%W1=P%=u#*2(!CHEFm<=wJ5eXHNC_k&O4<=8L zxHb3JF9kChLQN6>TQ5kh!HEzg2jKLOB?;mr=9fo&C-fbU0T;52eVFL{P6n}_bsqU8 zENp0J9YWWGI0dKTG?=Clo3I%InH8tw473xrB~%V5_crlJvT@K+3vMHJ0J~Rty#YYT zE} z7eQ4G)^{*!3WWr|ccs(q3*ut7%>R}qBtr?>i6_%0umC5+!=dIGe6wq?c{a#fiRa)d ztehWGqS~tRc>#9^*qgJXleW?}3a+CDaunBu^z?M*q5bL2OICT?oE}eld1ZQKcDj3Z zb^19d)xlc*zNT~#fdBi8nb+aD;A0`chc+s-`9WOICOpzB$U|@go{twaF#Inp6kSS} zI3(HsfrP>iIPjwRAVo;0g4hYpbV!3h)r6acO8hWo8QiqtK_G}-YznM$e_r(cehok! zOEqyDcH<>@DfLhtNZw-Q%7a}J!%7Jh* z5WPZdR^W>mo0WJKfXLOF9p z3O*u1AdMgXwm);LZt`|QhMP3(CEwlagHQ_jp1Tv`0rZy-BjHD9P);zlH8^Y&n3qt) zz-#e3z)kpCx~d1Ht`VgMtmb9zJadp!8g&1`0xZK4LqgSNhaJ%x^M zm_MtlVe_5kZ1uPUUCn?3S0xQafp{B!@U$d+{6RaC{RuzD2JAj%%rI-hh+WO?59C z#=8$6Jg4vbNQV#6brAcnW2J*A=pDj23@GWQE_i;}7)S9}$hZ|B!yn`0_!E2re~LfD zpW`p^mvlYdKsVAG=#BIydNaL+-b!!V3X*+|zro)^dG9p-4)pQ|{3FPDJN=se-i>iL zmUd$qwRK~8H&(Fyl@$TkrJY`=2Kf0SFbI}lvhn?JO^87dw*oGIsn-Y24%9EYs>{QB zrF@Gad%Jv10K-`+Dqo=I|7TbFyzHpIx~sDjto6^m zhtY&Y8Al?RDB(m*@1mQ6B$7nY9{M~r9w2~#h!iVHEa4Ay7d!pz*v#s4K~V)xDFLP2 zL+^G-mj5?lW`t7BxlxG)qmcsTPKObr+(aFbT+Qmos+=qS(4t zg3d#ZCcNQ$jKowZ3JL?V!opw8-qsap<3q{0i^Gb*rQY^t{#54NgV3kC4}OE zB?~FgT+)E#K{%C|M<1t81j&4|fNrNdsID;t!i4m1KASNQ0A2oQd|D7_F&_>G%1WUz zTgVbfg`mLGM%;8K-9>lzlBJ+#9dr+<)zeI=5_qfa-vqz4((UoMn)@GNU5CGAL72s^ zB5#+c8TLA6`0EC*x1&-wHYtE_H?dg{;wNJFEf(O^zR`f+466V z+dbql`p$V8$qurU>C!y%6n%p3W4g2(bZP%NMiPyWh7{>J@)EOw=gAA?MS6g~OWzZ0 zU@vb22mgQAfNsiX@8sMVlUE*+;VrUHFoAc#1U~p{u|xC+$p--5$oure9&(6&G(1=y zdD{nNaG@JUb5Pv~L#rH-BVJeFQ{A~e@u$Zrh2oF%`~ zPw8ht@-Ol`{hWS5jdjAL>I8-%PnbQFKSPKktTLZ6LPdR)L!urwkv}g?FE^SS!!pHx zPd0KgJfcMXv*N-zv5+o=8lpJ3RM*Q%pvWIXzoFmKQ@xywi{<3>H2o+2l^Lf7F#I`) zSb)O9-Jsl&2-w*sR0o=equZiYLPx%=$F91aGw^VF#vmlBic5qY;nbXlen-C#!pXdr z{y_i1v~I-ZW~Gik&VZu06fTwB-(Y17exL7f?z)TqC~Sw3GYRM8t{`WGY8~If!lm+r zr|&p3j{X=DAcMgIlD3G##}cRb>pyZJgOUy?#5%f@z`!Wt{aC#KFKvR=)kpdZJe81!Y$?6 zX9H;(GYl5QN`jbo^;!R;?;cek>uo1k_9-bL8~#x}vpw=)1|7#&c) z7}{Lshx`KW1On}oZ>S6iJ*w?9`O1d}VDhlBLmm@sTcG4COaVy9;4Eq0 zK<9zif<&cIz;1^$GIppu3~jdy30~Bn^-FSY%jD+efo6VwmOoKXI3E?R6I2#F)t`E2 z=2>&<+?7nf8-$O{TyqxhxH$@r8%4ua-Vm6-^Y)71fKDi7pgf7JhH|mheZz_k_P3-WPr-{NwPi!haHniARgais4eK zI7%EXmWs!V^?MC3$FikK2%iztpLiKvLEjHrsJiKvUHkMKrZ9&u;HQxPvmyb`fD z;a$*h?yKSEv7SOMa(8?m^4zVmztyn z(uvYZ(y7uSsa@JG?UG(5y;8bHx>mYQdcE{<=^p9R(r2ZwN)JkpNI#RFlKv`-k;!Co zS)43hrjlu7NwV=Wz04p>l}(Y^WW}-)*)&<1Y^H3MY_@EUtXftpn=89ewner}_Ok2? z*&ngVu@hq(V>@EIW3P`5#_ouHDt1@wp4gXT_r<;!dp!1=*i&*&E|y2hqvcY0lH4Ls zmuJee<+<{Fd7->iK3zUTUM{bYSIVp8HS#w3CGvIh+vGdtyXCLS-0R!^$U=ead6Xl%9kK!ZZmGQdx2+)`SNW9!_{PVOPSQgl7_-OL!sSrG&pH985T#@QZ4cDoPctlB!}=3RRM7 zyh^V!s8Ur%)pV6hb+xKTwNKWB@suxu+tM;lsRDGd3srp8BTJ^o^NA+m6 zL>;SEsFmsjb*egDovF@N=c+GIPgYM=7pd*)Dz!uHQ?FKEtzNI*sJ>Bsv-(c;-Re#1 zpn9|VA@y$c9`)1eXVuTE-%{^W_o?4gzpp-|{zUzS`YZL<>TlI&HCV%G!Zf2bks666 zMkCY6HA$K@O`c|wW{Sq9Db~!;lxr$9m6|F|v!+9Hp=P~iqvl4<&6-;^w`=au+@-lk z)1&Ft?9}YmJgs?F^StII&0fvxnm09XYxZjnXig@MPE1HlO`MWAC()C*Au*WvOyV1f z?#o$T(XG>6uiK!zLD!>uNcX62mu|Q2Y27QjKHVYR zVcikkG2Q37FLft%-{?;1#d?!|s@|rbp`WW?pl{SK(!2DndbfV5ewm)?uhVbV->1J{ zzg7RB{$c&2`p5O#^-t<|>UZn+>ksJP)4#7jq(7`bqCciTu0NswO#g-ctK?D1$;oBO zOOw|p??^tBe8!+K6B&9vYlX7v&+LY^3)~DQ%a#PAJDZMH8rff-hAT>TUCDodmk(!m7lR7bVQtFgc zTWWEtFSRH2jno6F2U9;t{V?_G)PJV_occ@Zuc`k^8AIsbZNjA6#n#z>>Y7-N(f<;HxY*La)p zUgK8dgT{xAPZ)O?pEB+;?lZn?JYxLJc*^*l@fQ;^g_$Bv3X{@gFqupiQ@Sa~lxHe1 zO)$+d)tVYjZKfrr`%RCTUNXI5I$-+9bkwXer)kG_Nt=WWLpW zyZKJ@J?0+sBjzW}&zs*fe_%drK59O0{?z=1`K0+<^LOSSEn_U>ED@F{OSDC1QCQ+F zYDo)5{)+epItb44_Sod0AwZ3lcvmUY@wjQw_6AC$m2%p?7!e{8e_4xk)Q?FqY literal 0 HcmV?d00001 diff --git a/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITests.swift b/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITests.swift new file mode 100644 index 0000000..7213aa5 --- /dev/null +++ b/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITests.swift @@ -0,0 +1,41 @@ +// +// AverageCalculatorAppUITests.swift +// AverageCalculatorAppUITests +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import XCTest + +final class AverageCalculatorAppUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITestsLaunchTests.swift b/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITestsLaunchTests.swift new file mode 100644 index 0000000..0242968 --- /dev/null +++ b/src/AverageCalculatorApp/AverageCalculatorAppUITests/AverageCalculatorAppUITestsLaunchTests.swift @@ -0,0 +1,32 @@ +// +// AverageCalculatorAppUITestsLaunchTests.swift +// AverageCalculatorAppUITests +// +// Created by BREUIL Yohann on 24/05/2023. +// + +import XCTest + +final class AverageCalculatorAppUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +}