- tmp/research/fixtures.py собирает фикстуры из архива, вычищая измерения и сохраняя порядок ключей, форму литералов, выравнивание меток и невидимые символы; шесть фикстур в internal/hae/testdata - internal/canon — общий дом канонической формы, полноты и хеша: числа читаются литералом через json.Number, округление до 12 значащих цифр - internal/hae — разбор секции metrics, вывод слоя по метрике, разделение схем сна, координаты интервалом; recover внутри Parse, фаззинг - миграция bucket и docs/database.md
79 lines
2.4 KiB
JSON
79 lines
2.4 KiB
JSON
{
|
||
"data": {
|
||
"metrics": [
|
||
{
|
||
"data": [
|
||
{
|
||
"qty": 0.48052029446490479,
|
||
"value": "Во сне",
|
||
"source": "Device A",
|
||
"start": "2025-06-05 22:04:00 +0300",
|
||
"startDate": "2025-06-05 22:04:00 +0300",
|
||
"endDate": "2025-06-05 22:16:00 +0300",
|
||
"end": "2025-06-05 22:16:00 +0300",
|
||
"date": "2025-06-05 22:04:00 +0300"
|
||
},
|
||
{
|
||
"endDate": "2025-06-06 02:21:00 +0300",
|
||
"qty": 1.5130355381745861,
|
||
"startDate": "2025-06-05 22:04:00 +0300",
|
||
"date": "2025-06-05 22:04:00 +0300",
|
||
"value": "В кровати",
|
||
"source": "Device A",
|
||
"end": "2025-06-06 02:21:00 +0300",
|
||
"start": "2025-06-05 22:04:00 +0300"
|
||
},
|
||
{
|
||
"qty": 9.1550074802731359,
|
||
"source": "Device A",
|
||
"end": "2025-06-06 01:26:00 +0300",
|
||
"value": "Во сне",
|
||
"start": "2025-06-05 22:40:00 +0300",
|
||
"startDate": "2025-06-05 22:40:00 +0300",
|
||
"date": "2025-06-05 22:40:00 +0300",
|
||
"endDate": "2025-06-06 01:26:00 +0300"
|
||
},
|
||
{
|
||
"date": "2025-06-06 01:27:00 +0300",
|
||
"endDate": "2025-06-06 02:21:00 +0300",
|
||
"qty": 0.78349523542270867,
|
||
"end": "2025-06-06 02:21:00 +0300",
|
||
"source": "Device A",
|
||
"value": "Во сне",
|
||
"start": "2025-06-06 01:27:00 +0300",
|
||
"startDate": "2025-06-06 01:27:00 +0300"
|
||
}
|
||
],
|
||
"units": "hr",
|
||
"name": "sleep_analysis"
|
||
},
|
||
{
|
||
"name": "heart_rate",
|
||
"units": "count/min",
|
||
"data": [
|
||
{
|
||
"context": "Не задано",
|
||
"Max": 31,
|
||
"date": "2025-06-06 03:00:36 +0300",
|
||
"start": "2025-06-06 03:00:36 +0300",
|
||
"Avg": 31,
|
||
"source": "Device A ",
|
||
"Min": 31,
|
||
"end": "2025-06-06 03:00:36 +0300"
|
||
},
|
||
{
|
||
"Min": 12,
|
||
"source": "Device A ",
|
||
"start": "2025-06-06 03:04:20 +0300",
|
||
"date": "2025-06-06 03:04:20 +0300",
|
||
"Max": 12,
|
||
"Avg": 12,
|
||
"context": "Не задано",
|
||
"end": "2025-06-06 03:04:20 +0300"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|