разбор метрик HAE: фикстуры, канонизация, парсер
- tmp/research/fixtures.py собирает фикстуры из архива, вычищая измерения и сохраняя порядок ключей, форму литералов, выравнивание меток и невидимые символы; шесть фикстур в internal/hae/testdata - internal/canon — общий дом канонической формы, полноты и хеша: числа читаются литералом через json.Number, округление до 12 значащих цифр - internal/hae — разбор секции metrics, вывод слоя по метрике, разделение схем сна, координаты интервалом; recover внутри Parse, фаззинг - миграция bucket и docs/database.md
This commit is contained in:
@@ -45,6 +45,13 @@
|
||||
но **не выводится** — он назначается схемам с фиксированной гранулярностью
|
||||
(см. «Разделение схем под одним именем метрики»).
|
||||
|
||||
Слоем метрики SHALL становиться **самое мелкое** выравнивание среди её меток, а
|
||||
не преобладающее. Измерено: у плотных метрик выравнивания перемешаны
|
||||
(`active_energy` — 1320 минутных меток и 21 часовая, `heart_rate` — 654
|
||||
посекундных и 10 минутных), потому что метка ровно на часе одновременно
|
||||
является и минутной. Метрика, у которой хоть одна метка стоит на середине часа,
|
||||
часовой не является.
|
||||
|
||||
Разделение схем под одним именем выполняется **до** вывода слоя, и точки с
|
||||
назначенным слоем в определении преобладающего слоя доставки не участвуют:
|
||||
суточных сводок сна бывает больше порога плотности, и их полуночные метки
|
||||
@@ -60,6 +67,12 @@
|
||||
- **WHEN** в доставке у метрики не меньше десяти точек с метками
|
||||
- **THEN** слой определяется выравниванием её собственных меток
|
||||
|
||||
#### Scenario: Одна метка на середине часа делает метрику минутной
|
||||
|
||||
- **WHEN** у плотной метрики десять меток стоят ровно на часе, а одна — на
|
||||
середине часа
|
||||
- **THEN** слой метрики `minute`, а не `hour`
|
||||
|
||||
#### Scenario: Редкая метрика наследует преобладающий слой
|
||||
|
||||
- **WHEN** в доставке у метрики меньше десяти точек
|
||||
|
||||
Reference in New Issue
Block a user