Phase 1 of the analytics system (/goal): the framework-independent analysis engine. Value-type models (MetricDelta, TrendResult, DaySample, WeeklyReport, MonthlyReport, ...) and AnalyticsEngine with documented formulas (volume, %change, consistency, trend) and honest degradation (nil/zero/tiny baseline, new exercise, rest day, outliers via winsorize, unit-dimension compatibility, divide-by-zero). Calendar math takes an injected Calendar (locale/firstWeekday/ timezone/DST-safe). AnalyticsEngineTests: 35 XCTest cases. Independently verified by compiling the engine with swiftc and running a 42-assertion harness — all pass. (Xcode test target not runnable in this env; assertions mirror the XCTest file.) Registered the new files via xcodegen. Logs KC-51 phase-1 progress in ISSUES.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
99 lines
3.6 KiB
XML
99 lines
3.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Scheme
|
|
LastUpgradeVersion = "2660"
|
|
version = "1.3">
|
|
<BuildAction
|
|
parallelizeBuildables = "YES"
|
|
buildImplicitDependencies = "YES">
|
|
<BuildActionEntries>
|
|
<BuildActionEntry
|
|
buildForTesting = "YES"
|
|
buildForRunning = "YES"
|
|
buildForProfiling = "YES"
|
|
buildForArchiving = "YES"
|
|
buildForAnalyzing = "YES">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "297C0C2BFBA10AB52D5D49CE"
|
|
BuildableName = "KisaniCal.app"
|
|
BlueprintName = "KisaniCal"
|
|
ReferencedContainer = "container:KisaniCal.xcodeproj">
|
|
</BuildableReference>
|
|
</BuildActionEntry>
|
|
</BuildActionEntries>
|
|
</BuildAction>
|
|
<TestAction
|
|
buildConfiguration = "Debug"
|
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
<MacroExpansion>
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "297C0C2BFBA10AB52D5D49CE"
|
|
BuildableName = "KisaniCal.app"
|
|
BlueprintName = "KisaniCal"
|
|
ReferencedContainer = "container:KisaniCal.xcodeproj">
|
|
</BuildableReference>
|
|
</MacroExpansion>
|
|
<Testables>
|
|
<TestableReference
|
|
skipped = "NO"
|
|
parallelizable = "NO">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "75535A64153951A3C35F75FC"
|
|
BuildableName = "KisaniCalTests.xctest"
|
|
BlueprintName = "KisaniCalTests"
|
|
ReferencedContainer = "container:KisaniCal.xcodeproj">
|
|
</BuildableReference>
|
|
</TestableReference>
|
|
</Testables>
|
|
</TestAction>
|
|
<LaunchAction
|
|
buildConfiguration = "Debug"
|
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
launchStyle = "0"
|
|
useCustomWorkingDirectory = "NO"
|
|
ignoresPersistentStateOnLaunch = "NO"
|
|
debugDocumentVersioning = "YES"
|
|
debugServiceExtension = "internal"
|
|
allowLocationSimulation = "YES">
|
|
<BuildableProductRunnable
|
|
runnableDebuggingMode = "0">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "297C0C2BFBA10AB52D5D49CE"
|
|
BuildableName = "KisaniCal.app"
|
|
BlueprintName = "KisaniCal"
|
|
ReferencedContainer = "container:KisaniCal.xcodeproj">
|
|
</BuildableReference>
|
|
</BuildableProductRunnable>
|
|
</LaunchAction>
|
|
<ProfileAction
|
|
buildConfiguration = "Release"
|
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
savedToolIdentifier = ""
|
|
useCustomWorkingDirectory = "NO"
|
|
debugDocumentVersioning = "YES">
|
|
<BuildableProductRunnable
|
|
runnableDebuggingMode = "0">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "297C0C2BFBA10AB52D5D49CE"
|
|
BuildableName = "KisaniCal.app"
|
|
BlueprintName = "KisaniCal"
|
|
ReferencedContainer = "container:KisaniCal.xcodeproj">
|
|
</BuildableReference>
|
|
</BuildableProductRunnable>
|
|
</ProfileAction>
|
|
<AnalyzeAction
|
|
buildConfiguration = "Debug">
|
|
</AnalyzeAction>
|
|
<ArchiveAction
|
|
buildConfiguration = "Release"
|
|
revealArchiveInOrganizer = "YES">
|
|
</ArchiveAction>
|
|
</Scheme>
|