| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import Foundation
- enum SampleData {
- private static var baseComponents: DateComponents = {
- var dateComponents = DateComponents()
- dateComponents.year = 2021
- dateComponents.month = 3
- dateComponents.day = 8
- dateComponents.timeZone = TimeZone(abbreviation: "MSK")
- dateComponents.hour = 8
- return dateComponents
- }()
- private static func generateDate(baseDateComponents: DateComponents, minutes: Int) -> Date {
- var localComponents = baseDateComponents
- localComponents.minute = minutes
- let userCalendar = Calendar(identifier: .gregorian)
- return userCalendar.date(from: localComponents)!
- }
- private static func generateGlucoseStream(startingPoint: Int, length: Int, amount: Int, direction: Int) -> [Int] {
- // Downwards
- if direction == 0 {
- return (1 ... length).map { startingPoint - $0 * amount }
- }
- return (1 ... length).map { startingPoint + $0 * amount }
- }
- static var sampleData: [BloodGlucose] {
- let mediumUp = generateGlucoseStream(startingPoint: 77, length: 80, amount: 2, direction: 1)
- let fastUp = generateGlucoseStream(startingPoint: mediumUp.last!, length: 20, amount: 5, direction: 1)
- let fastDown = generateGlucoseStream(startingPoint: fastUp.last!, length: 12, amount: 13, direction: 0)
- let mediumDown = generateGlucoseStream(startingPoint: fastDown.last!, length: 33, amount: 3, direction: 0)
- let slowUp = generateGlucoseStream(startingPoint: mediumDown.last!, length: 144, amount: 1, direction: 1)
- let glucose = mediumUp + fastUp + fastDown + mediumDown + slowUp
- let normalTime = (0 ... 278).map { generateDate(baseDateComponents: baseComponents, minutes: $0 * 5) }
- let tenMinutes = (279 ... 288).map { generateDate(baseDateComponents: baseComponents, minutes: $0 * 30) }
- let time = normalTime + tenMinutes
- return zip(glucose, time).map { BloodGlucose(
- sgv: $0,
- direction: nil,
- date: UInt64($1.timeIntervalSince1970),
- dateString: $1,
- filtered: nil,
- noise: nil,
- glucose: nil
- ) }
- }
- }
|