diff --git a/docs/README.md b/docs/README.md index 24fbe51..ae589f1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,7 +24,7 @@ ## Отчеты и результаты -- [Метрики](Метрики.md) - доступные метрики и дополнительные колонки отчета. +- [Метрики](Метрики.md) - доступные метрики, стандартные и пользовательские колонки отчета. - [Сортировка отчета](СортировкаОтчета.md) - способы сортировки итоговой таблицы. - [Экспорт результатов](ЭкспортРезультатов.md) - форматы экспорта и каталог артефактов. diff --git "a/docs/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\270.md" "b/docs/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\270.md" index 1bc6da3..e30d2c1 100644 --- "a/docs/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\270.md" +++ "b/docs/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\320\270.md" @@ -216,6 +216,7 @@ | `&КолонкаВерхнийКвартиль` | Добавляет колонку верхнего квартиля. | | `&КолонкаПроцентиль(<Процентиль1>, <Процентиль2>, ...)` | Добавляет одну или несколько процентильных колонок. | | `&КолонкаRatioSD` | Добавляет колонку `RatioSD`. | +| `&Колонка("<ИмяКолонки>")` | Добавляет пользовательскую колонку. | | `&ЭкспортMarkdown` | Включает экспорт в Markdown. | | `&ЭкспортJson` | Включает экспорт в JSON. | | `&ЭкспортHtml` | Включает экспорт в HTML. | @@ -227,6 +228,7 @@ &КолонкаМин &КолонкаМакс &КолонкаПроцентиль(10, 80) +&Колонка("МояКолонка") &ЭкспортJson &КаталогАртефактов("./BenchmarkArtifacts") Процедура ПриСозданииОбъекта() diff --git "a/docs/\320\234\320\265\321\202\321\200\320\270\320\272\320\270.md" "b/docs/\320\234\320\265\321\202\321\200\320\270\320\272\320\270.md" index f9e92b2..114c9e2 100644 --- "a/docs/\320\234\320\265\321\202\321\200\320\270\320\272\320\270.md" +++ "b/docs/\320\234\320\265\321\202\321\200\320\270\320\272\320\270.md" @@ -97,4 +97,50 @@ | Method | Mean | StdErr | StdDev | P0 | P25 | P50 | P67 | P80 | P85 | P90 | P95 | P100 | Op/s | |----------|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|---------:|------:| -| Бенчмарк | 10.61 ms | 31.84 us | 123.3 us | 10.43 ms | 10.49 ms | 10.57 ms | 10.70 ms | 10.72 ms | 10.72 ms | 10.73 ms | 10.76 ms | 10.82 ms | 94.29 | \ No newline at end of file +| Бенчмарк | 10.61 ms | 31.84 us | 123.3 us | 10.43 ms | 10.49 ms | 10.57 ms | 10.70 ms | 10.72 ms | 10.72 ms | 10.73 ms | 10.76 ms | 10.82 ms | 94.29 | + +## Пользовательские колонки + +Пользовательские колонки позволяют добавить в отчет собственные вычисляемые показатели. Возможность доступна только в **OneScript 2.0.0 и новее**. + +Модуль пользовательской колонки должен быть заранее доступен в процессе выполнения бенчмарка, например через `#Использовать "./customColumns"` и называться `КолонкаОтчетаБенчмарков<ИмяКолонки>`. Сам модуль должен реализовывать интерфейс [`ИнтерфейсКолонкиОтчетаБенчмарков`](../src/BenchmarkOneScript/core/reporting/Модули/ИнтерфейсКолонкиОтчетаБенчмарков.os). + +#### Реализация модуля колонки + +```bsl +Функция Создать() Экспорт + + Колонка = Новый КолонкаОтчетаБенчмарков("СреднееВМиллисекундах"); + Колонка.Заголовок = "Mean, ms"; + Колонка.Описание = "Среднее время выполнения в миллисекундах"; + Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Миллисекунда; + Колонка.ПараметрыПредставления.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(2); + + Возврат Колонка; + +КонецФункции + +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт + + Возврат РезультатЗапускаКейса.Статистика.ВМиллисекунды().Среднее; + +КонецФункции +``` + +#### Аннотации + +```bsl +#Использовать "./customColumns" + +&Колонка("СреднееВМиллисекундах") +Процедура ПриСозданииОбъекта() +КонецПроцедуры +``` + +#### API + +```bsl +#Использовать "./customColumns" + +Конфигурация.ДобавитьКолонку("СреднееВМиллисекундах"); +``` diff --git "a/docs/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.md" "b/docs/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.md" index 6e1424a..7535b84 100644 --- "a/docs/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.md" +++ "b/docs/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.md" @@ -277,4 +277,3 @@ КонецЦикла; КонецПроцедуры ``` - diff --git "a/samples/api/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\237\321\200\320\270\320\274\320\265\321\200.os" "b/samples/api/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\237\321\200\320\270\320\274\320\265\321\200.os" new file mode 100644 index 0000000..b84a6e2 --- /dev/null +++ "b/samples/api/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\237\321\200\320\270\320\274\320\265\321\200.os" @@ -0,0 +1,11 @@ +#Использовать benchmark +#Использовать "../benchmarks" + +Тип = Тип("БенчмаркПользовательскиеКолонки"); + +Конфигурация = Новый КонфигурацияБенчмарков(Тип); +Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Мин); +Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Макс); +Конфигурация.ДобавитьКолонку("РазмахВремениВМиллисекундах"); + +Бенчмаркинг.Запустить(Тип, Конфигурация); diff --git "a/samples/benchmarks/examples/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\276\320\272.os" "b/samples/benchmarks/examples/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\276\320\272.os" index c713b49..8b61449 100644 --- "a/samples/benchmarks/examples/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\276\320\272.os" +++ "b/samples/benchmarks/examples/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\276\321\200\321\202\320\270\321\200\320\276\320\262\320\276\320\272.os" @@ -713,7 +713,6 @@ КонецПроцедуры - // Поразрядная сортировка (LSD Radix-256) - O(d·(n+b)), где d=2, b=256. // Два прохода по основанию 256: сначала младшие 8 бит, затем старшие. // Покрывает значения [0..65535]. Стабильная, не основана на сравнениях. diff --git a/samples/benchmarks/features/README.md b/samples/benchmarks/features/README.md index 634b2bf..b91912b 100644 --- a/samples/benchmarks/features/README.md +++ b/samples/benchmarks/features/README.md @@ -21,4 +21,3 @@ benchos run ./БенчмаркБазовый.os # Запуск всех бенчмарков в текущем каталоге benchos run . ``` - diff --git "a/samples/benchmarks/features/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270.os" "b/samples/benchmarks/features/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270.os" new file mode 100644 index 0000000..d84c2c7 --- /dev/null +++ "b/samples/benchmarks/features/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\232\320\276\320\273\320\276\320\275\320\272\320\270.os" @@ -0,0 +1,10 @@ +#Использовать "../../customColumns" + +&Колонка("СреднееВМиллисекундах") +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт + Приостановить(10); +КонецПроцедуры diff --git "a/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\240\320\260\320\267\320\274\320\260\321\205\320\222\321\200\320\265\320\274\320\265\320\275\320\270\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" "b/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\240\320\260\320\267\320\274\320\260\321\205\320\222\321\200\320\265\320\274\320\265\320\275\320\270\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" new file mode 100644 index 0000000..9d80ad8 --- /dev/null +++ "b/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\240\320\260\320\267\320\274\320\260\321\205\320\222\321\200\320\265\320\274\320\265\320\275\320\270\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" @@ -0,0 +1,18 @@ +Функция Создать() Экспорт + + Колонка = Новый КолонкаОтчетаБенчмарков("РазмахВремениВМиллисекундах"); + Колонка.Заголовок = "Range, ms"; + Колонка.Описание = "Разница между максимальным и минимальным временем выполнения в миллисекундах"; + Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; + Колонка.ПараметрыПредставления.ЕдиницаИзмеренияПредставления = ЕдиницыИзмеренийБенчмарков.Миллисекунда; + + Возврат Колонка; + +КонецФункции + +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт // BSLLS:UnusedParameters-off + + Статистика = РезультатЗапускаКейса.Статистика.ВНаносекунды(); + Возврат Статистика.Макс - Статистика.Мин; + +КонецФункции diff --git "a/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" "b/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" new file mode 100644 index 0000000..3ec449d --- /dev/null +++ "b/samples/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265\320\222\320\234\320\270\320\273\320\273\320\270\321\201\320\265\320\272\321\203\320\275\320\264\320\260\321\205.os" @@ -0,0 +1,16 @@ +Функция Создать() Экспорт + + Колонка = Новый КолонкаОтчетаБенчмарков("СреднееВМиллисекундах"); + Колонка.Заголовок = "Mean, ms"; + Колонка.Описание = "Среднее время выполнения в миллисекундах"; + Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Миллисекунда; + + Возврат Колонка; + +КонецФункции + +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт // BSLLS:UnusedParameters-off + + Возврат РезультатЗапускаКейса.Статистика.ВМиллисекунды().Среднее; + +КонецФункции diff --git "a/src/BenchmarkOneScript/core/annotations/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\260.os" "b/src/BenchmarkOneScript/core/annotations/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\260.os" new file mode 100644 index 0000000..9165ef1 --- /dev/null +++ "b/src/BenchmarkOneScript/core/annotations/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\260.os" @@ -0,0 +1,21 @@ +// Добавляет в отчет пользовательскую колонку, создаваемую по модулю +// КолонкаОтчетаБенчмарков<ИмяКолонки>. +// +// Применяется только к методу ПриСозданииОбъекта. +// +// Параметры: +// ИмяКолонки - Строка - Имя колонки или полное имя модуля колонки. +// +// Примеры: +// &Колонка("Пользовательская") +// Процедура ПриСозданииОбъекта() +// // ... +// КонецПроцедуры +// +// &Колонка("КолонкаОтчетаБенчмарковПользовательская") +// Процедура ПриСозданииОбъекта() +// // ... +// КонецПроцедуры +&Аннотация("Колонка") +Процедура ПриСозданииОбъекта(ИмяКолонки) +КонецПроцедуры diff --git "a/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\267\320\262\320\273\320\265\320\272\320\260\321\202\320\265\320\273\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\267\320\262\320\273\320\265\320\272\320\260\321\202\320\265\320\273\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index e4a5f13..23b35e8 100644 --- "a/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\267\320\262\320\273\320\265\320\272\320\260\321\202\320\265\320\273\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\267\320\262\320\273\320\265\320\272\320\260\321\202\320\265\320\273\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -319,6 +319,7 @@ ПрочитатьАннотацииКолонкиБезПараметров(СвойстваКонструктора, Конфигурация); ПрочитатьАннотацииКолонкиПроцентиля(СвойстваКонструктора, Конфигурация); + ПрочитатьАннотацииПользовательскихКолонок(СвойстваКонструктора, Конфигурация); КонецПроцедуры @@ -366,6 +367,22 @@ КонецПроцедуры +// Читает аннотации &Колонка и добавляет пользовательские колонки в конфигурацию +// +// Параметры: +// СвойстваКонструктора - СтрокаТаблицыЗначений - Свойства метода ПриСозданииОбъекта +// Конфигурация - КонфигурацияБенчмарков - Конфигурация для заполнения +Процедура ПрочитатьАннотацииПользовательскихКолонок(СвойстваКонструктора, Конфигурация) + + Аннотации = РаботаСАннотациями.ПолучитьАннотации(СвойстваКонструктора, "Колонка"); + + Для Каждого Аннотация Из Аннотации Цикл + ИмяКолонки = РаботаСАннотациями.ПолучитьЗначениеПараметраАннотации(Аннотация); + Конфигурация.ДобавитьКолонку(ИмяКолонки); + КонецЦикла; + +КонецПроцедуры + // Читает аннотацию &КаталогАртефактов и устанавливает путь к каталогу в конфигурации // // Параметры: diff --git "a/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index fbb7842..0983a66 100644 --- "a/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/config/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,6 +1,5 @@ #Использовать asserts #Использовать validate -#Использовать reflector #Использовать fluent &Сериализуемое("Strategy") @@ -687,12 +686,21 @@ // Добавляет колонку отчета // +// В качестве имени колонки можно указать: +// - Имя стандартной колонки из перечисления КолонкиОтчетаБенчмарков; +// - Короткое имя пользовательской колонки, например "Пользовательская"; +// - Полное имя модуля пользовательской колонки, например "КолонкаОтчетаБенчмарковПользовательская". +// +// Модуль пользовательской колонки должен реализовывать интерфейс ИнтерфейсКолонкиОтчетаБенчмарков. +// // Параметры: -// Колонка - Строка - см. КолонкиОтчетаБенчмарков +// Колонка - Строка - Имя стандартной (см. КолонкиОтчетаБенчмарков) или пользовательской колонки // // Возвращаемое значение: // ЭтотОбъект -Функция ДобавитьКолонку(Колонка) Экспорт +Функция ДобавитьКолонку(Знач Колонка) Экспорт + + Колонка = КолонкиОтчетаБенчмарков.НормализоватьИмяКолонки(Колонка); Если _Колонки.Найти(Колонка) = Неопределено Тогда _Колонки.Добавить(Колонка); @@ -707,11 +715,13 @@ // Удаляет добавленную колонку отчета // // Параметры: -// Колонка - Строка - см. КолонкиОтчетаБенчмарков +// Колонка - Строка - Имя стандартной (см. КолонкиОтчетаБенчмарков) или пользовательской колонки // // Возвращаемое значение: // ЭтотОбъект -Функция УдалитьКолонку(Колонка) Экспорт +Функция УдалитьКолонку(Знач Колонка) Экспорт + + Колонка = КолонкиОтчетаБенчмарков.НормализоватьИмяКолонки(Колонка); Инд = _Колонки.Найти(Колонка); Если Не Инд = Неопределено Тогда @@ -739,7 +749,7 @@ // Добавленные колонки отчета // // Возвращаемое значение: -// Массив из Строка - см. КолонкиОтчетаБенчмарков +// Массив из Строка - см. КолонкиОтчетаБенчмарков или имена пользовательских колонок Функция Колонки() Экспорт Возврат Новый Массив(Новый ФиксированныйМассив(_Колонки)); КонецФункции diff --git "a/src/BenchmarkOneScript/core/exporters/\320\232\320\273\320\260\321\201\321\201\321\213/\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Html.os" "b/src/BenchmarkOneScript/core/exporters/\320\232\320\273\320\260\321\201\321\201\321\213/\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Html.os" index d1a721a..b25d3c8 100644 --- "a/src/BenchmarkOneScript/core/exporters/\320\232\320\273\320\260\321\201\321\201\321\213/\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Html.os" +++ "b/src/BenchmarkOneScript/core/exporters/\320\232\320\273\320\260\321\201\321\201\321\213/\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\265\321\200\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Html.os" @@ -31,8 +31,9 @@ Части.Добавить(""); Части.Добавить(""); Части.Добавить(""); + ВидимыеКолонки = РезультатЗапускаБенчмарков.Отчет.ВидимыеКолонки(); - Для Каждого Колонка Из РезультатЗапускаБенчмарков.Отчет.Колонки Цикл + Для Каждого Колонка Из ВидимыеКолонки Цикл Части.Добавить(""); @@ -43,13 +44,21 @@ Части.Добавить(""); - Для Каждого СтрокаОтчета Из РезультатЗапускаБенчмарков.Отчет.Таблица Цикл + Для Каждого СтрокаОтчета Из РезультатЗапускаБенчмарков.Отчет.Таблица() Цикл Части.Добавить(""); - Для Каждого Колонка Из РезультатЗапускаБенчмарков.Отчет.Колонки Цикл + Для Каждого Колонка Из ВидимыеКолонки Цикл + ПараметрыПредставления = РезультатЗапускаБенчмарков.Отчет.ПараметрыПредставленияКолонки(Колонка); + РезультатЗапускаКейса = РезультатЗапускаБенчмарков.Отчет.РезультатЗапускаКейсаСтроки(СтрокаОтчета); + ПредставлениеЗначения = Колонка.ПредставлениеЗначения( + СтрокаОтчета[Колонка.Имя], + РезультатЗапускаКейса, + ПараметрыПредставления + ); + Части.Добавить(""); КонецЦикла; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\260\320\277\321\202\320\265\321\200\320\234\320\276\320\264\321\203\320\273\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\260\320\277\321\202\320\265\321\200\320\234\320\276\320\264\321\203\320\273\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" new file mode 100644 index 0000000..690e736 --- /dev/null +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\260\320\277\321\202\320\265\321\200\320\234\320\276\320\264\321\203\320\273\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,103 @@ + +Перем _ИмяМодуля; // Строка +Перем _МодульКолонки; // Сценарий +Перем _Рефлектор; // Рефлектор + +#Область ОбработчикиСобытий + +// Адаптер модуля колонки отчета бенчмарков. +// +// Параметры: +// ИмяМодуля - Строка - Имя модуля колонки +// МодульКолонки - Сценарий - Загруженный модуль колонки +Процедура ПриСозданииОбъекта(ИмяМодуля, МодульКолонки) + + _ИмяМодуля = ИмяМодуля; + _МодульКолонки = МодульКолонки; + _Рефлектор = Новый Рефлектор(); + +КонецПроцедуры + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Создает экземпляр колонки из модуля и настраивает ее вычисление. +// +// Параметры: +// Параметр - Произвольный - Необязательный параметр функции Создать() модуля +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция СоздатьКолонку(Параметр = Неопределено) Экспорт + + ПроверитьМодульКолонки(); + + Колонка = СоздатьЭкземплярКолонки(Параметр); + Если ТипЗнч(Колонка) <> Тип("КолонкаОтчетаБенчмарков") Тогда + ВызватьИсключение СтрШаблон( + "Функция Создать() модуля <%1> должна возвращать объект типа КолонкаОтчетаБенчмарков.", + _ИмяМодуля + ); + КонецЕсли; + + НастроитьДелегатыКолонки(Колонка); + + Возврат Колонка; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ПроверитьМодульКолонки() + + Если ТипЗнч(_МодульКолонки) <> Тип("Сценарий") Тогда + ВызватьИсключение СтрШаблон("Модуль колонки отчета бенчмарков <%1> должен быть сценарием.", _ИмяМодуля); + КонецЕсли; + + Если Не _Рефлектор.МетодСуществует(_МодульКолонки, "Создать") Тогда + ВызватьИсключение СтрШаблон( + "Модуль колонки отчета бенчмарков <%1> должен экспортировать функцию Создать().", + _ИмяМодуля + ); + КонецЕсли; + +КонецПроцедуры + +Функция СоздатьЭкземплярКолонки(Параметр) + + Если Параметр = Неопределено Тогда + Возврат _Рефлектор.ВызватьМетод(_МодульКолонки, "Создать"); + КонецЕсли; + + Параметры = Новый Массив(); + Параметры.Добавить(Параметр); + + Возврат _Рефлектор.ВызватьМетод(_МодульКолонки, "Создать", Параметры); + +КонецФункции + +Процедура НастроитьДелегатыКолонки(Колонка) + + Если Колонка.ДелегатЗначение = Неопределено Тогда + Если Не _Рефлектор.МетодСуществует(_МодульКолонки, "Значение") Тогда + ВызватьИсключение СтрШаблон( + "Модуль колонки отчета бенчмарков <%1> должен иметь функцию Значение() " + + "или вернуть колонку с заполненным ДелегатЗначение.", + _ИмяМодуля + ); + КонецЕсли; + + Колонка.ДелегатЗначение = Новый Действие(_МодульКолонки, "Значение"); + КонецЕсли; + + Если Колонка.ДелегатПредставлениеЗначения = Неопределено + И _Рефлектор.МетодСуществует(_МодульКолонки, "ПредставлениеЗначения") Тогда + Колонка.ДелегатПредставлениеЗначения = Новый Действие(_МодульКолонки, "ПредставлениеЗначения"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 71d8df0..8229c75 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,41 +1,69 @@ // BSLLS:ExportVariables-off -Перем Имя Экспорт; // Строка -Перем Заголовок Экспорт; // Строка -Перем Описание Экспорт; // Строка -Перем ЕдиницаИзмерения Экспорт; // см. ЕдиницыИзмеренийБенчмарков -Перем ЕдиницаИзмеренияПредставления Экспорт; // см. ЕдиницыИзмеренийБенчмарков -Перем СтильКоэффициента Экспорт; // см. СтилиКоэффициентаБенчмарка -Перем ФорматнаяСтрока Экспорт; // Строка -Перем Размер Экспорт; // Число -Перем ЭтоЧисло Экспорт; // Булево -Перем ДелегатЗначение Экспорт; // Действие -Перем ДелегатПредставлениеЗначения Экспорт; // Действие - -// Лямбда-выражение для скрытия колонки при выполнении условия. -// Пример: -// Элемент -> Элемент >= 0 И Элемент < 0.02 -// Логика: -// Колонка скрывается, если ВСЕ её элементы находятся в интервале [0, 0.02). -Перем ФункцияСкрытия Экспорт; // Строка +// Внутреннее имя колонки. +// Используется как идентификатор колонки в таблице отчета, при сериализации и при поиске колонки в построителе отчета. +Перем Имя Экспорт; // Строка + +// Заголовок колонки в отчете. +// Используется в шапке Markdown/HTML-отчета и в легенде. +Перем Заголовок Экспорт; // Строка + +// Человекочитаемое описание колонки. +// Если заполнено, выводится в легенде отчета. +Перем Описание Экспорт; // Строка + +// Базовая единица измерения значения колонки. +// Используется для автоматического подбора единицы представления и форматирования числовых значений. +Перем ЕдиницаИзмерения Экспорт; // см. ЕдиницыИзмеренийБенчмарков, Неопределено + +// Стиль представления коэффициентов. +Перем СтильКоэффициента Экспорт; // см. СтилиКоэффициентаБенчмарка + +// Параметры представления колонки по умолчанию. +// При построении отчета копируются в runtime-настройки колонки и далее не мутируют исходное описание. +Перем ПараметрыПредставления Экспорт; // ПараметрыПредставленияКолонкиОтчетаБенчмарков + +// Делегат вычисления значения колонки по результату запуска кейса. +Перем ДелегатЗначение Экспорт; // Действие, Неопределено + +// Делегат пользовательского представления значения колонки. +// Если задан, используется вместо стандартного форматирования. +Перем ДелегатПредставлениеЗначения Экспорт; // Действие, Неопределено + +// Лямбда-выражение для автоматического скрытия колонки. +// Колонка скрывается, только если условие истинно для всех строк и колонка не была запрошена явно в конфигурации. +// +// Параметры для лямбда-выражения: +// Структура: +// * Значение - Произвольный - Значение колонки для строки отчета +// * РезультатЗапускаКейса - РезультатЗапускаКейса - Результат запуска кейса для строки отчета +// +// Пример: +// Элемент -> Элемент.Значение >= 0 И Элемент.Значение < 0.02 +Перем ФункцияСкрытия Экспорт; // Строка + +#Область ОбработчикиСобытий // Колонка отчета бенчмарков // // Параметры: -// пИмя - Строка - Имя колонки -Процедура ПриСозданииОбъекта(пИмя) +// ИмяКолонки - Строка - Имя колонки +Процедура ПриСозданииОбъекта(ИмяКолонки) - Имя = пИмя; - Заголовок = ""; - Описание = ""; - ФорматнаяСтрока = ""; - Размер = 0; - ЭтоЧисло = Ложь; - ФункцияСкрытия = ""; + Имя = ИмяКолонки; + Заголовок = ""; + Описание = ""; + СтильКоэффициента = СтилиКоэффициентаБенчмарка.Значение; + ПараметрыПредставления = Новый ПараметрыПредставленияКолонкиОтчетаБенчмарков(); + ФункцияСкрытия = ""; КонецПроцедуры +#КонецОбласти + +#Область ПрограммныйИнтерфейс + // Значение по результатам замеров // // Параметры: @@ -45,28 +73,41 @@ // Возвращаемое значение: // Произвольный Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт - Возврат ДелегатЗначение.Выполнить(РезультатЗапускаКейса, Колонка); + Если ДелегатЗначение <> Неопределено Тогда + Возврат ДелегатЗначение.Выполнить(РезультатЗапускаКейса, Колонка); + Иначе + ВызватьИсключение СтрШаблон("Для колонки <%1> не задан делегат вычисления значения.", Имя); + КонецЕсли; КонецФункции // Представление значения // // Параметры: // Значение - Произвольный -// СтрокаОтчета - СтрокаТаблицыЗначений +// РезультатЗапускаКейса - РезультатЗапускаКейса, Неопределено +// ПараметрыПредставленияКолонки - ПараметрыПредставленияКолонкиОтчетаБенчмарков, Неопределено // // Возвращаемое значение: // Строка -Функция ПредставлениеЗначения(Знач Значение, СтрокаОтчета) Экспорт +Функция ПредставлениеЗначения(Знач Значение, РезультатЗапускаКейса, ПараметрыПредставленияКолонки) Экспорт + + Если ПараметрыПредставленияКолонки = Неопределено Тогда + ПараметрыПредставленияКолонки = ПараметрыПредставления; + КонецЕсли; Если Не ДелегатПредставлениеЗначения = Неопределено Тогда - Возврат ДелегатПредставлениеЗначения.Выполнить(Значение, СтрокаОтчета); + Возврат ДелегатПредставлениеЗначения.Выполнить( + Значение, + РезультатЗапускаКейса, + ПараметрыПредставленияКолонки + ); КонецЕсли; Если СтильКоэффициента = СтилиКоэффициентаБенчмарка.Процент Тогда ФорматнаяСтрокаПроцента = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(2); - Если СтрокаОтчета.Эталон Тогда + Если РезультатЗапускаКейса <> Неопределено И РезультатЗапускаКейса.ЭтоЭталон Тогда Представление = "-"; Иначе Представление = ?(Значение >= 1, @@ -77,12 +118,16 @@ Возврат Представление; - Иначе - + ИначеЕсли СтильКоэффициента = СтилиКоэффициентаБенчмарка.Значение Тогда + ЕдиницаИзмеренияЗначения = ЕдиницаИзмерения; - Если Не ЕдиницаИзмеренияПредставления = Неопределено Тогда - Значение = ЕдиницыИзмеренийБенчмарков.Конвертировать(Значение, ЕдиницаИзмерения, ЕдиницаИзмеренияПредставления); - ЕдиницаИзмеренияЗначения = ЕдиницаИзмеренияПредставления; + Если Не ПараметрыПредставленияКолонки.ЕдиницаИзмеренияПредставления = Неопределено Тогда + Значение = ЕдиницыИзмеренийБенчмарков.Конвертировать( + Значение, + ЕдиницаИзмерения, + ПараметрыПредставленияКолонки.ЕдиницаИзмеренияПредставления + ); + ЕдиницаИзмеренияЗначения = ПараметрыПредставленияКолонки.ЕдиницаИзмеренияПредставления; КонецЕсли; ДополнитьЕдиницейИзмерения = Не ЕдиницаИзмеренияЗначения = Неопределено @@ -91,10 +136,16 @@ Возврат ПредставленияПоказателейБенчмарков.Представление( Значение, ЕдиницаИзмеренияЗначения, - ФорматнаяСтрока, + ПараметрыПредставленияКолонки.ФорматнаяСтрока, ДополнитьЕдиницейИзмерения ); + Иначе + + ВызватьИсключение "Неизвестный стиль коэффициента: " + СтильКоэффициента; + КонецЕсли; КонецФункции + +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Markdown.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Markdown.os" index c8463e0..2b9eef8 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Markdown.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\265\321\200\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222Markdown.os" @@ -35,17 +35,22 @@ ПодстрокиЗаголовки = Новый Массив(); ПодстрокиРазделитель = Новый Массив(); + ВидимыеКолонки = _ОтчетБенчмарков.ВидимыеКолонки(); - Для Каждого Колонка Из _ОтчетБенчмарков.Колонки Цикл + Для Каждого Колонка Из ВидимыеКолонки Цикл + + ПараметрыПредставления = _ОтчетБенчмарков.ПараметрыПредставленияКолонки(Колонка); - ПоложениеПраво = Колонка.ЭтоЧисло; - Размер = Колонка.Размер + ДобавочныхСимволов(); + ПоложениеПраво = _ОтчетБенчмарков.ЭтоЧисловаяКолонка(Колонка); + Размер = ПараметрыПредставления.Размер + ДобавочныхСимволов(); ПодстрокиЗаголовки.Добавить(РазделительКолонок()); - ПодстрокиЗаголовки.Добавить(ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(Колонка.Заголовок, Размер, ПоложениеПраво, , Истина)); + ПодстрокиЗаголовки.Добавить( + ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(Колонка.Заголовок, Размер, ПоложениеПраво, , Истина)); ПодстрокиРазделитель.Добавить(РазделительКолонок()); - ПодстрокиРазделитель.Добавить(ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(?(ПоложениеПраво, ":", ""), Размер, Истина, "-", Ложь)); + ПодстрокиРазделитель.Добавить( + ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(?(ПоложениеПраво, ":", ""), Размер, Истина, "-", Ложь)); КонецЦикла; @@ -59,19 +64,26 @@ Процедура ДобавитьСтроки(Результат) - Для Каждого СтрокаСтатистики Из _ОтчетБенчмарков.Таблица Цикл + ВидимыеКолонки = _ОтчетБенчмарков.ВидимыеКолонки(); + + Для Каждого СтрокаОтчета Из _ОтчетБенчмарков.Таблица() Цикл Подстроки = Новый Массив(); - Для Каждого Колонка Из _ОтчетБенчмарков.Колонки Цикл + Для Каждого Колонка Из ВидимыеКолонки Цикл + + ПараметрыПредставления = _ОтчетБенчмарков.ПараметрыПредставленияКолонки(Колонка); - ПоложениеПраво = Колонка.ЭтоЧисло; - Размер = Колонка.Размер + ДобавочныхСимволов(); - Значение = СтрокаСтатистики[Колонка.Имя]; - Представление = Колонка.ПредставлениеЗначения(Значение, СтрокаСтатистики); + ПоложениеПраво = _ОтчетБенчмарков.ЭтоЧисловаяКолонка(Колонка); + Размер = ПараметрыПредставления.Размер + ДобавочныхСимволов(); + Значение = СтрокаОтчета[Колонка.Имя]; + РезультатЗапускаКейса = _ОтчетБенчмарков.РезультатЗапускаКейсаСтроки(СтрокаОтчета); + + Представление = Колонка.ПредставлениеЗначения(Значение, РезультатЗапускаКейса, ПараметрыПредставления); Подстроки.Добавить(РазделительКолонок()); - Подстроки.Добавить(ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(Представление, Размер, ПоложениеПраво, , Истина)); + Подстроки.Добавить( + ПредставленияПоказателейБенчмарков.ФиксированнаяСтрока(Представление, Размер, ПоложениеПраво, , Истина)); КонецЦикла; @@ -90,4 +102,4 @@ Возврат 2; КонецФункции -#КонецОбласти \ No newline at end of file +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\321\202\321\207\320\265\321\202\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\321\202\321\207\320\265\321\202\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 58d77b3..1e085a0 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\321\202\321\207\320\265\321\202\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\321\202\321\207\320\265\321\202\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,15 +1,25 @@ // BSLLS:ExportVariables-off -Перем Таблица Экспорт; // ТаблицаЗначений -Перем Колонки Экспорт; // Массив из КолонкаОтчетаБенчмарков +Перем _Таблица; // ТаблицаЗначений +Перем _Колонки; // Массив из КолонкаОтчетаБенчмарков +Перем _ПараметрыПредставленияКолонок; // Соответствие +Перем _РезультатыЗапускаКейсовСтрокОтчета; // Соответствие + +#Область ОбработчикиСобытий Процедура ПриСозданииОбъекта() - Таблица = Новый ТаблицаЗначений(); - Колонки = Новый Массив(); + _Таблица = Новый ТаблицаЗначений(); + _Колонки = Новый Массив(); + _ПараметрыПредставленияКолонок = Новый Соответствие(); + _РезультатыЗапускаКейсовСтрокОтчета = Новый Соответствие(); КонецПроцедуры +#КонецОбласти + +#Область ПрограммныйИнтерфейс + // Конвертирует отчет в формат Markdown // // Возвращаемое значение: @@ -30,19 +40,21 @@ Состав = Новый СписокЗначений(); // Колонки - Для Каждого Колонка Из Колонки Цикл - Если ЗначениеЗаполнено(Колонка.Описание) Тогда - Состав.Добавить(Колонка.Заголовок, Колонка.Описание); + Для Каждого ТекущаяКолонка Из ВидимыеКолонки() Цикл + Если ЗначениеЗаполнено(ТекущаяКолонка.Описание) Тогда + Состав.Добавить(ТекущаяКолонка.Заголовок, ТекущаяКолонка.Описание); КонецЕсли; КонецЦикла; // Единицы измерения - Для Каждого Колонка Из Колонки Цикл + Для Каждого ТекущаяКолонка Из ВидимыеКолонки() Цикл + + ПараметрыПредставления = ПараметрыПредставленияКолонки(ТекущаяКолонка); - Если ЗначениеЗаполнено(Колонка.ЕдиницаИзмеренияПредставления) Тогда - Единица = Колонка.ЕдиницаИзмеренияПредставления; - ИначеЕсли ЗначениеЗаполнено(Колонка.ЕдиницаИзмерения) Тогда - Единица = Колонка.ЕдиницаИзмерения; + Если ЗначениеЗаполнено(ПараметрыПредставления.ЕдиницаИзмеренияПредставления) Тогда + Единица = ПараметрыПредставления.ЕдиницаИзмеренияПредставления; + ИначеЕсли ЗначениеЗаполнено(ТекущаяКолонка.ЕдиницаИзмерения) Тогда + Единица = ТекущаяКолонка.ЕдиницаИзмерения; Иначе Продолжить; КонецЕсли; @@ -73,4 +85,249 @@ Возврат СтрСоединить(Результат, Символы.ПС); -КонецФункции \ No newline at end of file +КонецФункции + +// Возвращает колонки, видимые в конкретном отчете. +// +// Возвращаемое значение: +// Массив из КолонкаОтчетаБенчмарков +Функция ВидимыеКолонки() Экспорт + + Результат = Новый Массив(); + + Для Каждого ТекущаяКолонка Из _Колонки Цикл + Если Не ПараметрыПредставленияКолонки(ТекущаяКолонка).Скрыта Тогда + Результат.Добавить(ТекущаяКолонка); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Добавляет колонку в отчет и создает runtime-копию ее параметров представления. +// +// Параметры: +// Колонка - КолонкаОтчетаБенчмарков, Строка - Экземпляр колонки или ее имя +Процедура ДобавитьКолонку(Колонка) Экспорт + + КолонкаОбъект = ПолучитьОбъектКолонки(Колонка); + ПроверитьИмяСозданнойКолонки(Колонка, КолонкаОбъект); + + ИмяКолонки = КолонкаОбъект.Имя; + Если НайтиКолонкуПоИмени(ИмяКолонки) <> Неопределено Тогда + Возврат; + КонецЕсли; + + Если _Таблица.Колонки.Найти(ИмяКолонки) = Неопределено Тогда + _Таблица.Колонки.Добавить(ИмяКолонки); + КонецЕсли; + + _Колонки.Добавить(КолонкаОбъект); + _ПараметрыПредставленияКолонок.Вставить(ИмяКолонки, КолонкаОбъект.ПараметрыПредставления.Скопировать()); + +КонецПроцедуры + +// Удаляет колонку из отчета. +// +// Параметры: +// Колонка - КолонкаОтчетаБенчмарков, Строка +Процедура УдалитьКолонку(Колонка) Экспорт + + ИмяКолонки = ПолучитьИмяКолонки(Колонка); + + Если _Таблица.Колонки.Найти(ИмяКолонки) <> Неопределено Тогда + _Таблица.Колонки.Удалить(ИмяКолонки); + КонецЕсли; + + Для Каждого ТекущаяКолонка Из _Колонки Цикл + Если ТекущаяКолонка.Имя = ИмяКолонки Тогда + _Колонки.Удалить(_Колонки.Найти(ТекущаяКолонка)); // BSLLS:DeletingCollectionItem-off + Прервать; + КонецЕсли; + КонецЦикла; + + _ПараметрыПредставленияКолонок.Удалить(ИмяКолонки); + +КонецПроцедуры + +// Возвращает подготовленные параметры представления колонки. +// +// Параметры: +// Колонка - КолонкаОтчетаБенчмарков, Строка +// +// Возвращаемое значение: +// ПараметрыПредставленияКолонкиОтчетаБенчмарков +Функция ПараметрыПредставленияКолонки(Колонка) Экспорт + + ИмяКолонки = ПолучитьИмяКолонки(Колонка); + ПараметрыПредставления = _ПараметрыПредставленияКолонок[ИмяКолонки]; + + Если ПараметрыПредставления = Неопределено Тогда + ВызватьИсключение СтрШаблон("Для колонки <%1> не найдены параметры представления в отчете.", ИмяКолонки); + КонецЕсли; + + Возврат ПараметрыПредставления; + +КонецФункции + +// Возвращает признак числовой колонки по значениям в отчете. +// +// Параметры: +// Колонка - КолонкаОтчетаБенчмарков, Строка +// +// Возвращаемое значение: +// Булево +Функция ЭтоЧисловаяКолонка(Колонка) Экспорт + + ИмяКолонки = ПолучитьИмяКолонки(Колонка); + ЗначенияКолонки = _Таблица.ВыгрузитьКолонку(ИмяКолонки); + + Возврат ЗначенияКолонкиЯвляютсяЧисловыми(ЗначенияКолонки); + +КонецФункции + +// Добавляет строку в табличные данные отчета. +// +// Параметры: +// РезультатЗапускаКейса - РезультатЗапускаКейса, Неопределено - Результат запуска кейса, +// связанный с добавляемой строкой отчета. +// +// Возвращаемое значение: +// СтрокаТаблицыЗначений +Функция Добавить(РезультатЗапускаКейса = Неопределено) Экспорт + + СтрокаОтчета = _Таблица.Добавить(); + _РезультатыЗапускаКейсовСтрокОтчета.Вставить(СтрокаОтчета, РезультатЗапускаКейса); + + Возврат СтрокаОтчета; + +КонецФункции + +// Возвращает табличные данные отчета. +// +// Возвращаемое значение: +// ТаблицаЗначений +Функция Таблица() Экспорт + + Возврат _Таблица; + +КонецФункции + +// Возвращает колонки отчета. +// +// Возвращаемое значение: +// Массив из КолонкаОтчетаБенчмарков +Функция Колонки() Экспорт + + Результат = Новый Массив(); + + Для Каждого Колонка Из _Колонки Цикл + Результат.Добавить(Колонка); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает результат запуска кейса, связанный со строкой отчета. +// +// Параметры: +// СтрокаОтчета - СтрокаТаблицыЗначений +// +// Возвращаемое значение: +// РезультатЗапускаКейса, Неопределено +Функция РезультатЗапускаКейсаСтроки(СтрокаОтчета) Экспорт + + Попытка + Возврат _РезультатыЗапускаКейсовСтрокОтчета[СтрокаОтчета]; + Исключение + Возврат Неопределено; + КонецПопытки; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьИмяКолонки(Колонка) + + Если ТипЗнч(Колонка) = Тип("Строка") Тогда + Возврат КолонкиОтчетаБенчмарков.НормализоватьИмяКолонки(Колонка); + КонецЕсли; + + Возврат Колонка.Имя; + +КонецФункции + +Функция ЗначенияКолонкиЯвляютсяЧисловыми(ЗначенияКолонки) + + ЕстьЧисла = Ложь; + + Для Каждого Значение Из ЗначенияКолонки Цикл + Если ТипЗнч(Значение) = Тип("Число") Тогда + ЕстьЧисла = Истина; + ИначеЕсли Не ЭтоПустоеЗначениеЧисловойКолонки(Значение) Тогда + Возврат Ложь; + КонецЕсли; + КонецЦикла; + + Возврат ЕстьЧисла; + +КонецФункции + +Функция ЭтоПустоеЗначениеЧисловойКолонки(Значение) + + Если Значение = Неопределено Тогда + Возврат Истина; + КонецЕсли; + + Если ТипЗнч(Значение) = Тип("Строка") Тогда + Возврат Значение = "" Или Значение = "?" Или Значение = "-"; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Функция ПолучитьОбъектКолонки(Колонка) + + Если ТипЗнч(Колонка) = Тип("Строка") Тогда + Возврат КолонкиОтчетаБенчмарков.СоздатьПоИмени(Колонка); + КонецЕсли; + + Возврат Колонка; + +КонецФункции + +Процедура ПроверитьИмяСозданнойКолонки(Колонка, КолонкаОбъект) + + Если ТипЗнч(Колонка) <> Тип("Строка") Тогда + Возврат; + КонецЕсли; + + ОжидаемоеИмяКолонки = ПолучитьИмяКолонки(Колонка); + Если КолонкаОбъект.Имя = ОжидаемоеИмяКолонки Тогда + Возврат; + КонецЕсли; + + ВызватьИсключение СтрШаблон( + "Имя созданной колонки <%1> не совпадает с запрошенным именем <%2>.", + КолонкаОбъект.Имя, + ОжидаемоеИмяКолонки + ); + +КонецПроцедуры + +Функция НайтиКолонкуПоИмени(ИмяКолонки) + + Для Каждого Колонка Из _Колонки Цикл + Если Колонка.Имя = ИмяКолонки Тогда + Возврат Колонка; + КонецЕсли; + КонецЦикла; + +КонецФункции + +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" new file mode 100644 index 0000000..b54f974 --- /dev/null +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,43 @@ +// BSLLS:ExportVariables-off + +// Единица измерения, в которой значение показывается в отчете. +Перем ЕдиницаИзмеренияПредставления Экспорт; // см. ЕдиницыИзмеренийБенчмарков, Неопределено + +// Форматная строка вывода значения. +Перем ФорматнаяСтрока Экспорт; // Строка + +// Признак скрытой колонки в конкретном отчете. +Перем Скрыта Экспорт; // Булево + +// Ширина колонки в символах для текстового представления. +Перем Размер Экспорт; // Число + +#Область ОбработчикиСобытий + +Процедура ПриСозданииОбъекта() + + ЕдиницаИзмеренияПредставления = Неопределено; + ФорматнаяСтрока = ""; + Скрыта = Ложь; + Размер = 0; + +КонецПроцедуры + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Создает копию параметров представления. +// +// Возвращаемое значение: +// ПараметрыПредставленияКолонкиОтчетаБенчмарков +Функция Скопировать() Экспорт + + Копия = Новый ПараметрыПредставленияКолонкиОтчетаБенчмарков(); + ЗаполнитьЗначенияСвойств(Копия, ЭтотОбъект); + + Возврат Копия; + +КонецФункции + +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 4ebc6f5..556e4f3 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\321\201\321\202\321\200\320\276\320\270\321\202\320\265\320\273\321\214\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -31,7 +31,6 @@ ДобавитьКолонки(); ЗаполнитьДанными(); - ОпределитьЧисловыеКолонки(); ОпределитьЕдиницыИзмеренияПредставления(); ОпределитьФорматныеСтроки(); ОпределитьРазмерыКолонок(); @@ -49,39 +48,35 @@ Процедура ДобавитьКолонки() ДобавитьКолонкуПорядкаПоУмолчанию(); - ДобавитьКолонкуРезультатаЗапускаКейса(); ДобавитьКолонкуГруппаЭталона(); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьМетод()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Метод); ДобавитьКолонкуКатегория(); ДобавитьКолонкиПараметров(); ДобавитьКолонкуВерсияИсполняющейСреды(); ДобавитьКолонкуЭталон(); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьСреднее()); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьСтандартнаяОшибка()); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьСтандартноеОтклонение()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Среднее); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.СтандартнаяОшибка); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.СтандартноеОтклонение); ДобавитьКолонкуКоэффициентПроизводительности(); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьRatioSD()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.RatioSD); ДобавитьКолонкуМин(); ДобавитьКолонкуНижнийКвартиль(); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьМедиана()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Медиана); ДобавитьКолонкуВерхнийКвартиль(); ДобавитьКолонкуМакс(); ДобавитьКолонкиПроцентилей(); - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьОперацийВСекунду()); + ДобавитьПользовательскиеКолонки(); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.ОперацийВСекунду); ДобавитьКолонкуВыделяемаяПамять(); КонецПроцедуры Процедура ДобавитьКолонкуПорядкаПоУмолчанию() - _Отчет.Таблица.Колонки.Добавить(ИмяКолонкиПорядокПоУмолчанию()); -КонецПроцедуры - -Процедура ДобавитьКолонкуРезультатаЗапускаКейса() - _Отчет.Таблица.Колонки.Добавить(ИмяКолонкиРезультатаЗапускаКейса()); + _Отчет.Таблица().Колонки.Добавить(ИмяКолонкиПорядокПоУмолчанию()); КонецПроцедуры Процедура ДобавитьКолонкуГруппаЭталона() - _Отчет.Таблица.Колонки.Добавить(ИмяКолонкиГруппаЭталона()); + _Отчет.Таблица().Колонки.Добавить(ИмяКолонкиГруппаЭталона()); КонецПроцедуры Процедура ДобавитьКолонкиПараметров() @@ -91,7 +86,7 @@ Для Каждого РезультатЗапускаКейса Из _ЗапускиКейсов Цикл Для Каждого Параметр Из РезультатЗапускаКейса.Кейс.Параметры() Цикл Если ДобавленныеИмена[Параметр.Имя()] = Неопределено Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьПараметр(Параметр.Имя())); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Параметр(Параметр.Имя())); ДобавленныеИмена.Вставить(Параметр.Имя(), Истина); КонецЕсли; КонецЦикла; @@ -102,7 +97,7 @@ Процедура ДобавитьКолонкуЭталон() Если ИспользуетсяЭталон() Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьЭталон()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Эталон); КонецЕсли; КонецПроцедуры @@ -119,7 +114,7 @@ КонецЦикла; Если ЕстьВерсия Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьВерсияИсполняющейСреды()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды); КонецЕсли; КонецПроцедуры @@ -136,7 +131,7 @@ КонецЦикла; Если ЕстьКатегория Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьКатегория()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Категория); КонецЕсли; КонецПроцедуры @@ -144,7 +139,7 @@ Процедура ДобавитьКолонкуКоэффициентПроизводительности() Если ИспользуетсяЭталон() Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьКоэффициентПроизводительности()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.КоэффициентПроизводительности); КонецЕсли; КонецПроцедуры @@ -152,7 +147,7 @@ Процедура ДобавитьКолонкуВыделяемаяПамять() Если _Конфигурация.ТребуетсяМониторингПамяти() Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьВыделяемаяПамять()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВыделяемаяПамять); КонецЕсли; КонецПроцедуры @@ -160,7 +155,7 @@ Процедура ДобавитьКолонкуМин() Если ЕстьКолонкаКонфигурации(КолонкиОтчетаБенчмарков.Мин) Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьМин()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Мин); КонецЕсли; КонецПроцедуры @@ -168,7 +163,7 @@ Процедура ДобавитьКолонкуМакс() Если ЕстьКолонкаКонфигурации(КолонкиОтчетаБенчмарков.Макс) Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьМакс()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.Макс); КонецЕсли; КонецПроцедуры @@ -176,7 +171,7 @@ Процедура ДобавитьКолонкуНижнийКвартиль() Если ЕстьКолонкаКонфигурации(КолонкиОтчетаБенчмарков.НижнийКвартиль) Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьНижнийКвартиль()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.НижнийКвартиль); КонецЕсли; КонецПроцедуры @@ -184,7 +179,7 @@ Процедура ДобавитьКолонкуВерхнийКвартиль() Если ЕстьКолонкаКонфигурации(КолонкиОтчетаБенчмарков.ВерхнийКвартиль) Тогда - ДобавитьКолонку(КолонкиОтчетаБенчмарков.СоздатьВерхнийКвартиль()); + ДобавитьКолонку(КолонкиОтчетаБенчмарков.ВерхнийКвартиль); КонецЕсли; КонецПроцедуры @@ -197,39 +192,41 @@ КонецПроцедуры +Процедура ДобавитьПользовательскиеКолонки() + + Для Каждого ИмяКолонки Из _КолонкиКонфигурации Цикл + + Если КолонкаОтчетаБенчмарковПроцентиль.ЭтоИмяКолонки(ИмяКолонки) Тогда + Продолжить; + КонецЕсли; + + ДобавитьКолонку(ИмяКолонки); + + КонецЦикла; + +КонецПроцедуры + Процедура ДобавитьКолонку(Колонка) - Если Не _Отчет.Таблица.Колонки.Найти(Колонка.Имя) = Неопределено Тогда - Возврат; - КонецЕсли; - - _Отчет.Таблица.Колонки.Добавить(Колонка.Имя); - _Отчет.Колонки.Добавить(Колонка); + _Отчет.ДобавитьКолонку(Колонка); КонецПроцедуры Процедура СкрытьКолонки() - СкрываемыеКолонки = Новый Массив(); - СкрываемыеКолонки.Добавить(ИмяКолонкиПорядокПоУмолчанию()); - СкрываемыеКолонки.Добавить(ИмяКолонкиРезультатаЗапускаКейса()); - СкрываемыеКолонки.Добавить(ИмяКолонкиГруппаЭталона()); - - Для Каждого Колонка Из _Отчет.Колонки Цикл - Если СкрыватьКолонку(Колонка) Тогда - СкрываемыеКолонки.Добавить(Колонка); + СкрываемыеКолонкиТаблицы = Новый Массив(); + СкрываемыеКолонкиТаблицы.Добавить(ИмяКолонкиПорядокПоУмолчанию()); + СкрываемыеКолонкиТаблицы.Добавить(ИмяКолонкиГруппаЭталона()); + + Для Каждого ИмяКолонки Из СкрываемыеКолонкиТаблицы Цикл + Если _Отчет.Таблица().Колонки.Найти(ИмяКолонки) <> Неопределено Тогда + _Отчет.Таблица().Колонки.Удалить(ИмяКолонки); КонецЕсли; КонецЦикла; - Для Каждого Колонка Из СкрываемыеКолонки Цикл - Если ТипЗнч(Колонка) = Тип("Строка") Тогда - ИмяКолонки = Колонка; - Иначе - ИмяКолонки = Колонка.Имя; - _Отчет.Колонки.Удалить(_Отчет.Колонки.Найти(Колонка)); - КонецЕсли; - - _Отчет.Таблица.Колонки.Удалить(ИмяКолонки); + Для Каждого Колонка Из _Отчет.Колонки() Цикл + ПараметрыПредставления = _Отчет.ПараметрыПредставленияКолонки(Колонка); + ПараметрыПредставления.Скрыта = СкрыватьКолонку(Колонка); КонецЦикла; КонецПроцедуры @@ -245,11 +242,11 @@ .ВДействие(); Скрывать = Истина; - Для Каждого СтрокаОтчета Из _Отчет.Таблица Цикл + Для Каждого СтрокаОтчета Из _Отчет.Таблица() Цикл Контекст = Новый Структура(); Контекст.Вставить("Значение", СтрокаОтчета[Колонка.Имя]); - Контекст.Вставить("Статистика", СтрокаОтчета[ИмяКолонкиРезультатаЗапускаКейса()].Статистика); + Контекст.Вставить("РезультатЗапускаКейса", _Отчет.РезультатЗапускаКейсаСтроки(СтрокаОтчета)); Попытка Скрывать = Действие.Выполнить(Контекст) = Истина; @@ -283,9 +280,8 @@ ПредыдущийБенчмарк = ИмяБенчмарка; КонецЕсли; - СтрокаОтчета = _Отчет.Таблица.Добавить(); + СтрокаОтчета = _Отчет.Добавить(РезультатЗапускаКейса); СтрокаОтчета[ИмяКолонкиПорядокПоУмолчанию()] = НомерБенчмарка; - СтрокаОтчета[ИмяКолонкиРезультатаЗапускаКейса()] = РезультатЗапускаКейса; Если РезультатЗапускаКейса.ЭтоЭталон Тогда СтрокаОтчета[ИмяКолонкиГруппаЭталона()] = РезультатЗапускаКейса.Кейс.Идентификатор(); @@ -293,7 +289,7 @@ СтрокаОтчета[ИмяКолонкиГруппаЭталона()] = РезультатЗапускаКейса.Эталон.Кейс.Идентификатор(); КонецЕсли; - Для Каждого Колонка Из _Отчет.Колонки Цикл + Для Каждого Колонка Из _Отчет.Колонки() Цикл СтрокаОтчета[Колонка.Имя] = Колонка.Значение(РезультатЗапускаКейса, Колонка); КонецЦикла; @@ -301,33 +297,19 @@ КонецПроцедуры -Процедура ОпределитьЧисловыеКолонки() - - Для Каждого Колонка Из _Отчет.Колонки Цикл - - Если Колонка.ЭтоЧисло Тогда - Продолжить; - КонецЕсли; - - ЗначенияКолонки = _Отчет.Таблица.ВыгрузитьКолонку(Колонка.Имя); - Если МатематическиеФункцииБенчмарков.ТолькоЧисла(ЗначенияКолонки) Тогда - Колонка.ЭтоЧисло = Истина; - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - Процедура ОпределитьЕдиницыИзмеренияПредставления() - Для Каждого Колонка Из _Отчет.Колонки Цикл + Для Каждого Колонка Из _Отчет.Колонки() Цикл + + ПараметрыПредставления = _Отчет.ПараметрыПредставленияКолонки(Колонка); - Если Колонка.ЕдиницаИзмерения = Неопределено Тогда + Если Колонка.ЕдиницаИзмерения = Неопределено + Или ПараметрыПредставления.ЕдиницаИзмеренияПредставления <> Неопределено Тогда Продолжить; КонецЕсли; Минимальная = Неопределено; - Для Каждого Строка Из _Отчет.Таблица Цикл + Для Каждого Строка Из _Отчет.Таблица() Цикл Значение = Строка[Колонка.Имя]; @@ -338,9 +320,14 @@ ЕдиницаИзмерения, ЕдиницыИзмеренийБенчмарков.Минимальная(Минимальная, ЕдиницаИзмерения) ); + КонецЦикла; - Колонка.ЕдиницаИзмеренияПредставления = ?(Минимальная = Неопределено, Колонка.ЕдиницаИзмерения, Минимальная); + ПараметрыПредставления.ЕдиницаИзмеренияПредставления = ?( + Минимальная = Неопределено, + Колонка.ЕдиницаИзмерения, + Минимальная + ); КонецЦикла; @@ -348,9 +335,11 @@ Процедура ОпределитьФорматныеСтроки() - Для Каждого Колонка Из _Отчет.Колонки Цикл + Для Каждого Колонка Из _Отчет.Колонки() Цикл + + ПараметрыПредставления = _Отчет.ПараметрыПредставленияКолонки(Колонка); - Если Не Колонка.ЭтоЧисло Или ЗначениеЗаполнено(Колонка.ФорматнаяСтрока) Тогда + Если Не _Отчет.ЭтоЧисловаяКолонка(Колонка) Или ЗначениеЗаполнено(ПараметрыПредставления.ФорматнаяСтрока) Тогда Продолжить; КонецЕсли; @@ -359,11 +348,12 @@ Возврат; КонецЕсли; - Если Не Колонка.ЕдиницаИзмерения = Неопределено И Не Колонка.ЕдиницаИзмеренияПредставления = Неопределено Тогда + Если Не Колонка.ЕдиницаИзмерения = Неопределено + И Не ПараметрыПредставления.ЕдиницаИзмеренияПредставления = Неопределено Тогда МинЗначение = ЕдиницыИзмеренийБенчмарков.Конвертировать( МинЗначение, Колонка.ЕдиницаИзмерения, - Колонка.ЕдиницаИзмеренияПредставления + ПараметрыПредставления.ЕдиницаИзмеренияПредставления ); КонецЕсли; @@ -371,7 +361,7 @@ МинЗначение, Колонка.ЕдиницаИзмерения); - Колонка.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); + ПараметрыПредставления.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); КонецЦикла; @@ -379,15 +369,18 @@ Процедура ОпределитьРазмерыКолонок() - Для Каждого Колонка Из _Отчет.Колонки Цикл - Колонка.Размер = СтрДлина(Колонка.Заголовок); + Для Каждого Колонка Из _Отчет.Колонки() Цикл + ПараметрыПредставления = _Отчет.ПараметрыПредставленияКолонки(Колонка); + ПараметрыПредставления.Размер = СтрДлина(Колонка.Заголовок); КонецЦикла; - Для Каждого Строка Из _Отчет.Таблица Цикл - Для Каждого Колонка Из _Отчет.Колонки Цикл - Значение = Строка[Колонка.Имя]; - Представление = СтрДлина(Колонка.ПредставлениеЗначения(Значение, Строка)); - Колонка.Размер = Макс(Колонка.Размер, Представление); + Для Каждого СтрокаОтчета Из _Отчет.Таблица() Цикл + Для Каждого Колонка Из _Отчет.Колонки() Цикл + ПараметрыПредставления = _Отчет.ПараметрыПредставленияКолонки(Колонка); + Значение = СтрокаОтчета[Колонка.Имя]; + РезультатЗапускаКейса = _Отчет.РезультатЗапускаКейсаСтроки(СтрокаОтчета); + Представление = СтрДлина(Колонка.ПредставлениеЗначения(Значение, РезультатЗапускаКейса, ПараметрыПредставления)); + ПараметрыПредставления.Размер = Макс(ПараметрыПредставления.Размер, Представление); КонецЦикла; КонецЦикла; @@ -418,13 +411,13 @@ ДобавитьСортировкуПоПараметрам(КолонкиСортировки); ДобавитьСортировку(КолонкиСортировки, ИмяКолонкиПорядокПоУмолчанию()); - _Отчет.Таблица.Сортировать(СтрСоединить(КолонкиСортировки, ", ")); + _Отчет.Таблица().Сортировать(СтрСоединить(КолонкиСортировки, ", ")); КонецПроцедуры Процедура ДобавитьСортировкуПоПараметрам(Сортировка) - Для Каждого Колонка Из _Отчет.Колонки Цикл + Для Каждого Колонка Из _Отчет.Колонки() Цикл ИмяПараметра = КолонкаОтчетаБенчмарковПараметр.ИмяПараметра(Колонка); Если ЗначениеЗаполнено(ИмяПараметра) Тогда ДобавитьСортировку(Сортировка, Колонка.Имя); @@ -435,7 +428,7 @@ Процедура ДобавитьСортировку(Сортировка, ИмяКолонки, Направление = "") - Если Не _Отчет.Таблица.Колонки.Найти(ИмяКолонки) = Неопределено Тогда + Если Не _Отчет.Таблица().Колонки.Найти(ИмяКолонки) = Неопределено Тогда Сортировка.Добавить(СокрЛП(ИмяКолонки + " " + Направление)); КонецЕсли; @@ -453,7 +446,7 @@ Функция МинимальноеЗначение(ИмяКолонки) МинЗначение = Неопределено; - Для Каждого Строка Из _Отчет.Таблица Цикл + Для Каждого Строка Из _Отчет.Таблица() Цикл Значение = Строка[ИмяКолонки]; Если ТипЗнч(Значение) = Тип("Число") Тогда МинЗначение = ?(МинЗначение = Неопределено, Значение, Мин(МинЗначение, Значение)); @@ -468,10 +461,6 @@ Возврат "ПорядокПоУмолчанию"; КонецФункции -Функция ИмяКолонкиРезультатаЗапускаКейса() - Возврат "РезультатЗапускаКейса"; -КонецФункции - Функция ИмяКолонкиГруппаЭталона() Возврат "ГруппаЭталона"; КонецФункции diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" new file mode 100644 index 0000000..6c9c659 --- /dev/null +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,32 @@ +// BSLLS:FunctionShouldHaveReturn-off +// BSLLS:UnusedParameters-off + +// Создает экземпляр колонки +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция Создать() Экспорт +КонецФункции + +// Возвращает значение колонки +// +// Параметры: +// РезультатЗапускаКейса - РезультатЗапускаКейса +// Колонка - КолонкаОтчетаБенчмарков +// +// Возвращаемое значение: +// Произвольный +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт +КонецФункции + +// Возвращает представление значения колонки +// +// Параметры: +// Значение - Произвольный +// РезультатЗапускаКейса - РезультатЗапускаКейса +// ПараметрыПредставленияКолонки - ПараметрыПредставленияКолонкиОтчетаБенчмарков, Неопределено +// +// Возвращаемое значение: +// Строка +Функция ПредставлениеЗначения(Значение, РезультатЗапускаКейса, ПараметрыПредставленияКолонки) Экспорт +КонецФункции diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262RatioSD.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262RatioSD.os" index 3ac2b53..0c88539 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262RatioSD.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262RatioSD.os" @@ -13,9 +13,7 @@ Колонка.Описание = "Стандартное отклонение соотношений времени выполнения относительно эталона ([StdDev] / [Baseline StdDev])"; Колонка.СтильКоэффициента = СтилиКоэффициентаБенчмарка.Значение; - Колонка.ЭтоЧисло = Истина; - Колонка.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); + Колонка.ПараметрыПредставления.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); Колонка.ФункцияСкрытия = "Элемент -> Элемент.Значение >= 0 И Элемент.Значение < 0.02"; Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\201\320\270\321\217\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\265\320\271\320\241\321\200\320\265\320\264\321\213.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\201\320\270\321\217\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\265\320\271\320\241\321\200\320\265\320\264\321\213.os" index 43c0516..4d6bba1 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\201\320\270\321\217\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\265\320\271\320\241\321\200\320\265\320\264\321\213.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\201\320\270\321\217\320\230\321\201\320\277\320\276\320\273\320\275\321\217\321\216\321\211\320\265\320\271\320\241\321\200\320\265\320\264\321\213.os" @@ -7,7 +7,6 @@ Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды); Колонка.Заголовок = "Runtime"; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\205\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\205\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" index 35e948b..3f9714d 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\205\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\320\265\321\200\321\205\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Q3"; Колонка.Описание = "Третий (верхний) квартиль (75-й процентиль)"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\321\213\320\264\320\265\320\273\321\217\320\265\320\274\320\260\321\217\320\237\320\260\320\274\321\217\321\202\321\214.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\321\213\320\264\320\265\320\273\321\217\320\265\320\274\320\260\321\217\320\237\320\260\320\274\321\217\321\202\321\214.os" index 4a72857..0852a8d 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\321\213\320\264\320\265\320\273\321\217\320\265\320\274\320\260\321\217\320\237\320\260\320\274\321\217\321\202\321\214.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\222\321\213\320\264\320\265\320\273\321\217\320\265\320\274\320\260\321\217\320\237\320\260\320\274\321\217\321\202\321\214.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Allocated"; Колонка.Описание = "Выделяемая память на одну операцию"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Байт; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\260\321\202\320\265\320\263\320\276\321\200\320\270\321\217.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\260\321\202\320\265\320\263\320\276\321\200\320\270\321\217.os" index e16edd0..f339950 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\260\321\202\320\265\320\263\320\276\321\200\320\270\321\217.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\260\321\202\320\265\320\263\320\276\321\200\320\270\321\217.os" @@ -7,7 +7,6 @@ Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.Категория); Колонка.Заголовок = "Categories"; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\276\321\215\321\204\321\204\320\270\321\206\320\270\320\265\320\275\321\202\320\237\321\200\320\276\320\270\320\267\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\276\321\215\321\204\321\204\320\270\321\206\320\270\320\265\320\275\321\202\320\237\321\200\320\276\320\270\320\267\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" index 49cd9d4..7a7aaf4 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\276\321\215\321\204\321\204\320\270\321\206\320\270\320\265\320\275\321\202\320\237\321\200\320\276\320\270\320\267\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\232\320\276\321\215\321\204\321\204\320\270\321\206\320\270\320\265\320\275\321\202\320\237\321\200\320\276\320\270\320\267\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" @@ -12,9 +12,7 @@ Колонка.Заголовок = "Ratio"; Колонка.Описание = "Среднее значение соотношений времени выполнения относительно эталона ([Mean] / [Baseline Mean])"; Колонка.СтильКоэффициента = СтилиКоэффициентаБенчмарка.Значение; - Колонка.ЭтоЧисло = Истина; - Колонка.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); + Колонка.ПараметрыПредставления.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(Разрядность); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\260\320\272\321\201.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\260\320\272\321\201.os" index 817a5f8..8017022 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\260\320\272\321\201.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\260\320\272\321\201.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Max"; Колонка.Описание = "Максимум"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\320\264\320\270\320\260\320\275\320\260.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\320\264\320\270\320\260\320\275\320\260.os" index cfb2eb0..f489e79 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\320\264\320\270\320\260\320\275\320\260.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\320\264\320\270\320\260\320\275\320\260.os" @@ -9,10 +9,8 @@ Колонка.Заголовок = "Median"; Колонка.Описание = "Значение, разделяющее упорядоченные измерения на две равные части"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Колонка.ФункцияСкрытия = "Элемент -> - |МатематическиеФункцииБенчмарков.Abs(Элемент.Значение - Элемент.Статистика.Среднее) < Элемент.Статистика.Среднее * 0.2"; + |МатематическиеФункцииБенчмарков.Abs(Элемент.Значение - Элемент.РезультатЗапускаКейса.Статистика.ВНаносекунды().Среднее) < Элемент.РезультатЗапускаКейса.Статистика.ВНаносекунды().Среднее * 0.2"; Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\321\202\320\276\320\264.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\321\202\320\276\320\264.os" index ba20741..8d62440 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\321\202\320\276\320\264.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\265\321\202\320\276\320\264.os" @@ -7,7 +7,6 @@ Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.Метод); Колонка.Заголовок = "Method"; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\270\320\275.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\270\320\275.os" index 1c2dcba..1d9e26f 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\270\320\275.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\234\320\270\320\275.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Min"; Колонка.Описание = "Минимум"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\235\320\270\320\266\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\235\320\270\320\266\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" index 5e2f1be..763926c 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\235\320\270\320\266\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\235\320\270\320\266\320\275\320\270\320\271\320\232\320\262\320\260\321\200\321\202\320\270\320\273\321\214.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Q1"; Колонка.Описание = "Первый (нижний) квартиль (25-й процентиль)"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\271\320\222\320\241\320\265\320\272\321\203\320\275\320\264\321\203.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\271\320\222\320\241\320\265\320\272\321\203\320\275\320\264\321\203.os" index a663bba..a4f7f86 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\271\320\222\320\241\320\265\320\272\321\203\320\275\320\264\321\203.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\271\320\222\320\241\320\265\320\272\321\203\320\275\320\264\321\203.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Op/s"; Колонка.Описание = "Операций в секунду"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.ОперацийВСекунду; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200.os" index 42e17b3..fab88e6 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200.os" @@ -11,7 +11,6 @@ Колонка = Новый КолонкаОтчетаБенчмарков(ИмяКолонки(ИмяПараметра)); Колонка.Заголовок = ИмяПараметра; Колонка.Описание = СтрШаблон("Значение параметра '%1'", ИмяПараметра); - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; @@ -45,12 +44,31 @@ Возврат Префикс() + ИмяПараметра; КонецФункции +// Возвращает имя параметра по колонке или имени колонки. +// +// Параметры: +// Колонка - КолонкаОтчетаБенчмарков, Строка +// +// Возвращаемое значение: +// Строка, Неопределено Функция ИмяПараметра(Колонка) Экспорт - Если СтрНайти(Колонка.Имя, Префикс()) = 1 Тогда - Возврат СтрЗаменить(Колонка.Имя, Префикс(), ""); + ИмяКолонки = ?(ТипЗнч(Колонка) = Тип("Строка"), Колонка, Колонка.Имя); + Если ЭтоИмяКолонки(ИмяКолонки) Тогда + Возврат СтрЗаменить(ИмяКолонки, Префикс(), ""); КонецЕсли; КонецФункции +// Имя колонки является колонкой параметра. +// +// Параметры: +// ИмяКолонки - Строка +// +// Возвращаемое значение: +// Булево +Функция ЭтоИмяКолонки(ИмяКолонки) Экспорт + Возврат СтрНайти(ИмяКолонки, Префикс()) = 1; +КонецФункции + Функция Префикс() Возврат "Параметр_"; КонецФункции diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\321\200\320\276\321\206\320\265\320\275\321\202\320\270\320\273\321\214.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\321\200\320\276\321\206\320\265\320\275\321\202\320\270\320\273\321\214.os" index 76e8783..5b38cb1 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\321\200\320\276\321\206\320\265\320\275\321\202\320\270\320\273\321\214.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\321\200\320\276\321\206\320\265\320\275\321\202\320\270\320\273\321\214.os" @@ -13,8 +13,6 @@ Колонка.Заголовок = "P" + Процентиль; Колонка.Описание = СтрШаблон("%1-й процентиль", Процентиль); Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; @@ -77,7 +75,7 @@ Колонки = Новый Массив(); Для Каждого Процентиль Из Процентили Цикл - Колонки.Добавить(Создать(Процентиль)); + Колонки.Добавить(КолонкиОтчетаБенчмарков.СоздатьПроцентиль(Процентиль)); КонецЦикла; Возврат Колонки; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265.os" index 2fa67fd..fe6d35e 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\200\320\265\320\264\320\275\320\265\320\265.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "Mean"; Колонка.Описание = "Арифметическое среднее всех измерений"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\260\321\217\320\236\321\210\320\270\320\261\320\272\320\260.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\260\321\217\320\236\321\210\320\270\320\261\320\272\320\260.os" index 444463b..e17dd11 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\260\321\217\320\236\321\210\320\270\320\261\320\272\320\260.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\260\321\217\320\236\321\210\320\270\320\261\320\272\320\260.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "StdErr"; Колонка.Описание = "Стандартная ошибка всех измерений"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\276\320\265\320\236\321\202\320\272\320\273\320\276\320\275\320\265\320\275\320\270\320\265.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\276\320\265\320\236\321\202\320\272\320\273\320\276\320\275\320\265\320\275\320\270\320\265.os" index 0963acc..9ae905d 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\276\320\265\320\236\321\202\320\272\320\273\320\276\320\275\320\265\320\275\320\270\320\265.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\320\276\320\265\320\236\321\202\320\272\320\273\320\276\320\275\320\265\320\275\320\270\320\265.os" @@ -9,8 +9,6 @@ Колонка.Заголовок = "StdDev"; Колонка.Описание = "Стандартное отклонение всех измерений"; Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда; - Колонка.ЭтоЧисло = Истина; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\255\321\202\320\260\320\273\320\276\320\275.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\255\321\202\320\260\320\273\320\276\320\275.os" index b21169a..e97e30e 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\255\321\202\320\260\320\273\320\276\320\275.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\255\321\202\320\260\320\273\320\276\320\275.os" @@ -7,8 +7,7 @@ Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.Эталон); Колонка.Заголовок = "Baseline"; - Колонка.ФорматнаяСтрока = "БЛ=No; БИ=Yes"; - Колонка.ДелегатЗначение = Новый Действие(ЭтотОбъект, "Значение"); + Колонка.ПараметрыПредставления.ФорматнаяСтрока = "БЛ=No; БИ=Yes"; Возврат Колонка; diff --git "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 45e5838..bc3853b 100644 --- "a/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/reporting/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\270\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,3 +1,4 @@ +// BSLLS:MagicNumber-off // BSLLS:ExportVariables-off Перем Метод Экспорт; // Строка @@ -18,86 +19,346 @@ Перем Процентиль Экспорт; // Строка Перем ВерсияИсполняющейСреды Экспорт; // Строка +#Область ПрограммныйИнтерфейс + +// Создает колонку отчета с именем метода бенчмарка. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьМетод() Экспорт - Возврат КолонкаОтчетаБенчмарковМетод.Создать(); + Возврат СоздатьСтандартнуюКолонку(Метод, КолонкаОтчетаБенчмарковМетод); КонецФункции +// Создает колонку отчета со средним временем выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьСреднее() Экспорт - Возврат КолонкаОтчетаБенчмарковСреднее.Создать(); + Возврат СоздатьСтандартнуюКолонку(Среднее, КолонкаОтчетаБенчмарковСреднее); КонецФункции +// Создает колонку отчета со стандартным отклонением. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьСтандартноеОтклонение() Экспорт - Возврат КолонкаОтчетаБенчмарковСтандартноеОтклонение.Создать(); + Возврат СоздатьСтандартнуюКолонку(СтандартноеОтклонение, КолонкаОтчетаБенчмарковСтандартноеОтклонение); КонецФункции +// Создает колонку отчета со стандартной ошибкой. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьСтандартнаяОшибка() Экспорт - Возврат КолонкаОтчетаБенчмарковСтандартнаяОшибка.Создать(); + Возврат СоздатьСтандартнуюКолонку(СтандартнаяОшибка, КолонкаОтчетаБенчмарковСтандартнаяОшибка); КонецФункции +// Создает колонку отчета с медианой времени выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьМедиана() Экспорт - Возврат КолонкаОтчетаБенчмарковМедиана.Создать(); + Возврат СоздатьСтандартнуюКолонку(Медиана, КолонкаОтчетаБенчмарковМедиана); КонецФункции +// Создает колонку отчета с нижним квартилем времени выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьНижнийКвартиль() Экспорт - Возврат КолонкаОтчетаБенчмарковНижнийКвартиль.Создать(); + Возврат СоздатьСтандартнуюКолонку(НижнийКвартиль, КолонкаОтчетаБенчмарковНижнийКвартиль); КонецФункции +// Создает колонку отчета с верхним квартилем времени выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьВерхнийКвартиль() Экспорт - Возврат КолонкаОтчетаБенчмарковВерхнийКвартиль.Создать(); + Возврат СоздатьСтандартнуюКолонку(ВерхнийКвартиль, КолонкаОтчетаБенчмарковВерхнийКвартиль); КонецФункции +// Создает колонку отчета с количеством операций в секунду. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьОперацийВСекунду() Экспорт - Возврат КолонкаОтчетаБенчмарковОперацийВСекунду.Создать(); + Возврат СоздатьСтандартнуюКолонку(ОперацийВСекунду, КолонкаОтчетаБенчмарковОперацийВСекунду); КонецФункции +// Создает колонку отчета с признаком эталонного бенчмарка. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьЭталон() Экспорт - Возврат КолонкаОтчетаБенчмарковЭталон.Создать(); + Возврат СоздатьСтандартнуюКолонку(Эталон, КолонкаОтчетаБенчмарковЭталон); КонецФункции +// Создает колонку отчета с коэффициентом производительности относительно эталона. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьКоэффициентПроизводительности() Экспорт - Возврат КолонкаОтчетаБенчмарковКоэффициентПроизводительности.Создать(); + Возврат СоздатьСтандартнуюКолонку(КоэффициентПроизводительности, КолонкаОтчетаБенчмарковКоэффициентПроизводительности); КонецФункции +// Создает колонку отчета с отношением стандартного отклонения к среднему. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьRatioSD() Экспорт - Возврат КолонкаОтчетаБенчмарковRatioSD.Создать(); + Возврат СоздатьСтандартнуюКолонку(RatioSD, КолонкаОтчетаБенчмарковRatioSD); КонецФункции +// Создает колонку отчета с категорией бенчмарка. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьКатегория() Экспорт - Возврат КолонкаОтчетаБенчмарковКатегория.Создать(); + Возврат СоздатьСтандартнуюКолонку(Категория, КолонкаОтчетаБенчмарковКатегория); КонецФункции +// Создает колонку отчета с объемом выделяемой памяти. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьВыделяемаяПамять() Экспорт - Возврат КолонкаОтчетаБенчмарковВыделяемаяПамять.Создать(); + Возврат СоздатьСтандартнуюКолонку(ВыделяемаяПамять, КолонкаОтчетаБенчмарковВыделяемаяПамять); КонецФункции +// Создает колонку отчета с минимальным временем выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьМин() Экспорт - Возврат КолонкаОтчетаБенчмарковМин.Создать(); + Возврат СоздатьСтандартнуюКолонку(Мин, КолонкаОтчетаБенчмарковМин); КонецФункции +// Создает колонку отчета с максимальным временем выполнения. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьМакс() Экспорт - Возврат КолонкаОтчетаБенчмарковМакс.Создать(); + Возврат СоздатьСтандартнуюКолонку(Макс, КолонкаОтчетаБенчмарковМакс); КонецФункции +// Создает колонку отчета для указанного процентиля времени выполнения. +// +// Параметры: +// Процентиль - Число +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьПроцентиль(Процентиль) Экспорт - Возврат КолонкаОтчетаБенчмарковПроцентиль.Создать(Процентиль); + Возврат СоздатьСтандартнуюКолонку(Процентиль, КолонкаОтчетаБенчмарковПроцентиль, Процентиль); КонецФункции +// Возвращает имя колонки отчета для указанного процентиля. +// +// Параметры: +// Процентиль - Число +// +// Возвращаемое значение: +// Строка Функция Процентиль(Процентиль) Экспорт Возврат КолонкаОтчетаБенчмарковПроцентиль.ИмяКолонки(Процентиль); КонецФункции +// Создает колонку отчета для значения параметра бенчмарка. +// +// Параметры: +// ИмяПараметра - Строка +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьПараметр(ИмяПараметра) Экспорт - Возврат КолонкаОтчетаБенчмарковПараметр.Создать(ИмяПараметра); + Возврат СоздатьСтандартнуюКолонку("Параметр", КолонкаОтчетаБенчмарковПараметр, ИмяПараметра); КонецФункции +// Возвращает имя колонки отчета для указанного параметра бенчмарка. +// +// Параметры: +// ИмяПараметра - Строка +// +// Возвращаемое значение: +// Строка Функция Параметр(ИмяПараметра) Экспорт Возврат КолонкаОтчетаБенчмарковПараметр.ИмяКолонки(ИмяПараметра); КонецФункции +// Создает колонку отчета с версией исполняющей среды. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков Функция СоздатьВерсияИсполняющейСреды() Экспорт - Возврат КолонкаОтчетаБенчмарковВерсияИсполняющейСреды.Создать(); + Возврат СоздатьСтандартнуюКолонку(ВерсияИсполняющейСреды, КолонкаОтчетаБенчмарковВерсияИсполняющейСреды); +КонецФункции + +// Создает пользовательскую колонку отчета. +// +// Параметры: +// ИмяКолонки - Строка +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция СоздатьПользовательскую(ИмяКолонки) Экспорт + + ИмяМодуля = ПрефиксМодуляПользовательскойКолонки() + НормализоватьИмяКолонки(ИмяКолонки); + МодульКолонки = ПолучитьМодульПользовательскойКолонки(ИмяМодуля); + + Возврат СоздатьКолонкуИзМодуля(ИмяМодуля, МодульКолонки); + +КонецФункции + +// Создает колонку отчета по ее имени. +// +// Параметры: +// ИмяКолонки - Строка +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция СоздатьПоИмени(ИмяКолонки) Экспорт + + Если ИмяКолонки = Метод Тогда + Возврат СоздатьМетод(); + ИначеЕсли ИмяКолонки = Среднее Тогда + Возврат СоздатьСреднее(); + ИначеЕсли ИмяКолонки = СтандартноеОтклонение Тогда + Возврат СоздатьСтандартноеОтклонение(); + ИначеЕсли ИмяКолонки = СтандартнаяОшибка Тогда + Возврат СоздатьСтандартнаяОшибка(); + ИначеЕсли ИмяКолонки = Медиана Тогда + Возврат СоздатьМедиана(); + ИначеЕсли ИмяКолонки = НижнийКвартиль Тогда + Возврат СоздатьНижнийКвартиль(); + ИначеЕсли ИмяКолонки = ВерхнийКвартиль Тогда + Возврат СоздатьВерхнийКвартиль(); + ИначеЕсли ИмяКолонки = ОперацийВСекунду Тогда + Возврат СоздатьОперацийВСекунду(); + ИначеЕсли ИмяКолонки = Эталон Тогда + Возврат СоздатьЭталон(); + ИначеЕсли ИмяКолонки = КоэффициентПроизводительности Тогда + Возврат СоздатьКоэффициентПроизводительности(); + ИначеЕсли ИмяКолонки = RatioSD Тогда + Возврат СоздатьRatioSD(); + ИначеЕсли ИмяКолонки = Категория Тогда + Возврат СоздатьКатегория(); + ИначеЕсли ИмяКолонки = ВыделяемаяПамять Тогда + Возврат СоздатьВыделяемаяПамять(); + ИначеЕсли ИмяКолонки = Мин Тогда + Возврат СоздатьМин(); + ИначеЕсли ИмяКолонки = Макс Тогда + Возврат СоздатьМакс(); + ИначеЕсли ИмяКолонки = ВерсияИсполняющейСреды Тогда + Возврат СоздатьВерсияИсполняющейСреды(); + ИначеЕсли КолонкаОтчетаБенчмарковПараметр.ЭтоИмяКолонки(ИмяКолонки) Тогда + Возврат СоздатьПараметр(КолонкаОтчетаБенчмарковПараметр.ИмяПараметра(ИмяКолонки)); + ИначеЕсли КолонкаОтчетаБенчмарковПроцентиль.ЭтоИмяКолонки(ИмяКолонки) Тогда + Колонки = КолонкаОтчетаБенчмарковПроцентиль.СоздатьПоИмени(ИмяКолонки); + Если Колонки.Количество() <> 1 Тогда + ВызватьИсключение СтрШаблон( + "Имя колонки <%1> задает набор колонок и не может быть добавлено как одна колонка отчета.", + ИмяКолонки + ); + КонецЕсли; + Возврат Колонки[0]; + Иначе + Возврат СоздатьПользовательскую(ИмяКолонки); + КонецЕсли; + +КонецФункции + +// Возвращает имя пользовательской колонки отчета без префикса модуля колонки. +// +// Параметры: +// ИмяКолонки - Строка +// +// Возвращаемое значение: +// Строка +Функция НормализоватьИмяКолонки(ИмяКолонки) Экспорт + + ПрефиксМодуля = ПрефиксМодуляПользовательскойКолонки(); + Если СтрНачинаетсяС(ИмяКолонки, ПрефиксМодуля) Тогда + Возврат Сред(ИмяКолонки, СтрДлина(ПрефиксМодуля) + 1); + КонецЕсли; + + Возврат ИмяКолонки; + +КонецФункции + +// Возвращает признак пользовательской колонки отчета. +// +// Параметры: +// ИмяКолонки - Строка +// +// Возвращаемое значение: +// Булево +Функция ЭтоПользовательскаяКолонка(ИмяКолонки) Экспорт + + ИмяКолонки = НормализоватьИмяКолонки(ИмяКолонки); + + Возврат Не ЭтоСтандартнаяКолонка(ИмяКолонки) + И Не КолонкаОтчетаБенчмарковПараметр.ЭтоИмяКолонки(ИмяКолонки) + И Не КолонкаОтчетаБенчмарковПроцентиль.ЭтоИмяКолонки(ИмяКолонки); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЭтоСтандартнаяКолонка(ИмяКолонки) + + Возврат ИмяКолонки = Метод + Или ИмяКолонки = Среднее + Или ИмяКолонки = СтандартноеОтклонение + Или ИмяКолонки = СтандартнаяОшибка + Или ИмяКолонки = Медиана + Или ИмяКолонки = НижнийКвартиль + Или ИмяКолонки = ВерхнийКвартиль + Или ИмяКолонки = ОперацийВСекунду + Или ИмяКолонки = Эталон + Или ИмяКолонки = КоэффициентПроизводительности + Или ИмяКолонки = RatioSD + Или ИмяКолонки = Категория + Или ИмяКолонки = ВыделяемаяПамять + Или ИмяКолонки = Мин + Или ИмяКолонки = Макс + Или ИмяКолонки = ВерсияИсполняющейСреды; + КонецФункции +Функция ПолучитьМодульПользовательскойКолонки(ИмяМодуля) + + Попытка + Возврат Вычислить(ИмяМодуля); + Исключение + ВызватьИсключение СтрШаблон("Не найден модуль колонки отчета бенчмарков <%1>.", ИмяМодуля); + КонецПопытки; + +КонецФункции + +Функция ПрефиксМодуляПользовательскойКолонки() + Возврат "КолонкаОтчетаБенчмарков"; +КонецФункции + +Функция СоздатьСтандартнуюКолонку(ИмяКолонки, МодульКолонки, ПараметрСоздания = Неопределено) + + ИмяМодуля = ПрефиксМодуляПользовательскойКолонки() + ИмяКолонки; + Возврат СоздатьКолонкуИзМодуля(ИмяМодуля, МодульКолонки, ПараметрСоздания); + +КонецФункции + +Функция СоздатьКолонкуИзМодуля(ИмяМодуля, МодульКолонки, ПараметрСоздания = Неопределено) + + АдаптерМодуляКолонки = Новый АдаптерМодуляКолонкиОтчетаБенчмарков(ИмяМодуля, МодульКолонки); + Возврат АдаптерМодуляКолонки.СоздатьКолонку(ПараметрСоздания); + +КонецФункции + +#КонецОбласти + +#Область Инициализация + Метод = "Метод"; Среднее = "Среднее"; СтандартноеОтклонение = "СтандартноеОтклонение"; @@ -115,3 +376,5 @@ RatioSD = "RatioSD"; Макс = "Макс"; Процентиль = "Процентиль"; ВерсияИсполняющейСреды = "ВерсияИсполняющейСреды"; + +#КонецОбласти diff --git "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\260\320\273\320\270\320\264\320\260\321\202\320\276\321\200\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\260\320\273\320\270\320\264\320\260\321\202\320\276\321\200\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 0125ac8..8fb5c0b 100644 --- "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\260\320\273\320\270\320\264\320\260\321\202\320\276\321\200\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\320\260\320\273\320\270\320\264\320\260\321\202\320\276\321\200\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -37,7 +37,8 @@ // 2. Единообразие типов бенчмарков (все из одного класса) // 3. Уникальность эталонной исполняющей среды (не более одной) // 4. Уникальность эталонных бенчмарков в пределах категории -// 5. Сериализуемость всех параметров (примитивные типы) +// 5. Поддержка пользовательских колонок текущей версией OneScript +// 6. Сериализуемость всех параметров (примитивные типы) // // Возвращаемое значение: // Булево - Истина, если конфигурация корректна и запуск возможен; @@ -50,6 +51,7 @@ ПроверитьОднородностьТиповБенчмарков(); ПроверитьУникальностьЭталоннойСреды(); ПроверитьУникальностьЭталонныхБенчмарков(); + ПроверитьПоддержкуПользовательскихКолонок(); ПроверитьСериализуемостьПараметров(); Результат = _НайденныеОшибки.Количество() = 0; @@ -186,6 +188,44 @@ КонецПроцедуры +// Проверяет поддержку пользовательских колонок текущей версией OneScript. +Процедура ПроверитьПоддержкуПользовательскихКолонок() + + ТекущаяВерсияOneScript = Новый СистемнаяИнформация().Версия; + Если Не ЭтоOneScript1(ТекущаяВерсияOneScript) Тогда + Возврат; + КонецЕсли; + + Если Не ЕстьПользовательскиеКолонки() Тогда + Возврат; + КонецЕсли; + + ДобавитьОшибку(СтрШаблон( + "Пользовательские колонки отчета поддерживаются только в OneScript 2.0 и выше. " + + "Текущая версия OneScript: %1.", + ТекущаяВерсияOneScript + )); + +КонецПроцедуры + +Функция ЕстьПользовательскиеКолонки() + + Для Каждого ИмяКолонки Из _Конфигурация.Колонки() Цикл + Если Не КолонкиОтчетаБенчмарков.ЭтоПользовательскаяКолонка(ИмяКолонки) Тогда + Продолжить; + КонецЕсли; + + Возврат Истина; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Функция ЭтоOneScript1(Версия) + Возврат СтрНачинаетсяС(Версия, "1."); +КонецФункции + // Проверяет сериализуемость всех параметров конфигурации и бенчмарков. // // Все параметры должны иметь примитивные типы данных для корректной сериализации diff --git "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" index 236693c..e290795 100644 --- "a/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" +++ "b/src/BenchmarkOneScript/core/running/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\260.os" @@ -1,5 +1,4 @@ - &Сериализуемое("Event") Перем _Событие; // Строка - см. СобытияБенчмарков diff --git "a/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index e69de29..d1f2db8 100644 --- "a/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\221\320\265\320\267\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,15 @@ +Перем _СообщенияЛога; + +Функция ПолучитьСообщения() Экспорт + Возврат _СообщенияЛога; +КонецФункции + +Процедура Вывести(Знач Сообщение, Знач УровеньВывода) Экспорт + _СообщенияЛога.Добавить(Сообщение); +КонецПроцедуры + +Процедура Закрыть() Экспорт + _СообщенияЛога = Неопределено; +КонецПроцедуры + +_СообщенияЛога = Новый Массив; diff --git "a/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" new file mode 100644 index 0000000..19fb79c --- /dev/null +++ "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" @@ -0,0 +1,10 @@ +#Использовать "../../customColumns" + +&Колонка("Пользовательская") +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт + Приостановить(10); +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\247\320\270\321\201\320\273\320\276\320\262\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\247\320\270\321\201\320\273\320\276\320\262\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" new file mode 100644 index 0000000..12a8212 --- /dev/null +++ "b/tests/fixtures/benchmarks/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\241\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\276\320\271\320\247\320\270\321\201\320\273\320\276\320\262\320\276\320\271\320\232\320\276\320\273\320\276\320\275\320\272\320\276\320\271.os" @@ -0,0 +1,10 @@ +#Использовать "../../customColumns" + +&Колонка("ПользовательскаяЧисловая") +Процедура ПриСозданииОбъекта() +КонецПроцедуры + +&Бенчмарк +Процедура Бенчмарк() Экспорт + Приостановить(10); +КонецПроцедуры diff --git "a/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217.os" "b/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217.os" new file mode 100644 index 0000000..8906ad1 --- /dev/null +++ "b/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217.os" @@ -0,0 +1,49 @@ +// BSLLS:UnusedParameters-off + +// Создает экземпляр пользовательской колонки для тестов. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция Создать() Экспорт + + Колонка = Новый КолонкаОтчетаБенчмарков("Пользовательская"); + Колонка.Заголовок = "Custom"; + Колонка.Описание = "Пользовательская колонка"; + + Возврат Колонка; + +КонецФункции + +// Возвращает значение пользовательской колонки. +// +// Параметры: +// РезультатЗапускаКейса - РезультатЗапускаКейса +// Колонка - КолонкаОтчетаБенчмарков +// +// Возвращаемое значение: +// Строка +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт + + Возврат "custom"; + +КонецФункции + +// Возвращает представление значения пользовательской колонки. +// +// Параметры: +// Значение - Произвольный +// РезультатЗапускаКейса - РезультатЗапускаКейса +// ПараметрыПредставленияКолонки - ПараметрыПредставленияКолонкиОтчетаБенчмарков +// +// Возвращаемое значение: +// Строка +Функция ПредставлениеЗначения(Значение, РезультатЗапускаКейса, ПараметрыПредставленияКолонки) Экспорт + + Возврат СтрШаблон( + "%1|%2|%3", + Значение, + РезультатЗапускаКейса.Статистика.Среднее, + ПараметрыПредставленияКолонки.ФорматнаяСтрока + ); + +КонецФункции diff --git "a/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217\320\247\320\270\321\201\320\273\320\276\320\262\320\260\321\217.os" "b/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217\320\247\320\270\321\201\320\273\320\276\320\262\320\260\321\217.os" new file mode 100644 index 0000000..5189f4a --- /dev/null +++ "b/tests/fixtures/customColumns/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\273\320\276\320\275\320\272\320\260\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\260\321\217\320\247\320\270\321\201\320\273\320\276\320\262\320\260\321\217.os" @@ -0,0 +1,29 @@ +// BSLLS:UnusedParameters-off + +// Создает экземпляр пользовательской числовой колонки для тестов. +// +// Возвращаемое значение: +// КолонкаОтчетаБенчмарков +Функция Создать() Экспорт + + Колонка = Новый КолонкаОтчетаБенчмарков("ПользовательскаяЧисловая"); + Колонка.Заголовок = "Custom Number"; + Колонка.Описание = "Пользовательская числовая колонка"; + + Возврат Колонка; + +КонецФункции + +// Возвращает значение пользовательской числовой колонки. +// +// Параметры: +// РезультатЗапускаКейса - РезультатЗапускаКейса +// Колонка - КолонкаОтчетаБенчмарков +// +// Возвращаемое значение: +// Число +Функция Значение(РезультатЗапускаКейса, Колонка) Экспорт + + Возврат 42; + +КонецФункции diff --git a/tests/fixtures/verified-report.md b/tests/fixtures/verified-report.md index e4fe878..088b7e0 100644 --- a/tests/fixtures/verified-report.md +++ b/tests/fixtures/verified-report.md @@ -2,6 +2,6 @@ MockIntel Core i7-6700HQ CPU 2.60GHz, 1 CPU, 8 logical and 4 physical cores | Method | Значение | П1 | П2 | П | Mean | StdErr | StdDev | Min | Max | Op/s | -|----------------|---------:|----|------|--------|-------:|-------:|-------:|-------:|-------:|------:| +|----------------|---------:|---:|------|--------|-------:|-------:|-------:|-------:|-------:|------:| | БенчмаркВторой | 100 | | | Массив | 1.0 ms | 0.0 ns | 0.0 ns | 1.0 ms | 1.0 ms | 1,000 | -| БенчмаркПервый | 100 | 1 | Тест | | 1.0 ms | 0.0 ns | 0.0 ns | 1.0 ms | 1.0 ms | 1,000 | +| БенчмаркПервый | 100 | 1 | Тест | | 1.0 ms | 0.0 ns | 0.0 ns | 1.0 ms | 1.0 ms | 1,000 | diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 38e84bd..8f182a2 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\224\320\265\321\201\320\272\321\200\320\270\320\277\321\202\320\276\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -88,11 +88,11 @@ // Проверка ИмяКолонки = КолонкиОтчетаБенчмарков.Категория; - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); - Ожидаем.Что(Результат.Отчет.Таблица[0][ИмяКолонки]).Равно("А"); - Ожидаем.Что(Результат.Отчет.Таблица[1][ИмяКолонки]).Равно("А"); - Ожидаем.Что(Результат.Отчет.Таблица[2][ИмяКолонки]).Равно("Б"); - Ожидаем.Что(Результат.Отчет.Таблица[3][ИмяКолонки]).Равно("Б"); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(4); + Ожидаем.Что(Результат.Отчет.Таблица()[0][ИмяКолонки]).Равно("А"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][ИмяКолонки]).Равно("А"); + Ожидаем.Что(Результат.Отчет.Таблица()[2][ИмяКолонки]).Равно("Б"); + Ожидаем.Что(Результат.Отчет.Таблица()[3][ИмяКолонки]).Равно("Б"); КонецПроцедуры @@ -112,8 +112,8 @@ Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Категория]).Равно("В"); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Категория]).Равно("В"); КонецПроцедуры @@ -169,4 +169,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 8a93c96..c3180bc 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\274\320\265\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:DuplicateStringLiteral-off +// BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off #Использовать asserts @@ -169,8 +169,8 @@ Ожидаем.Что(Статистика2.СтандартнаяОшибкаСреднего).БольшеИлиРавно(0); Ожидаем.Что(Статистика1.Медиана).Больше(0); Ожидаем.Что(Статистика2.Медиана).Больше(Статистика1.Медиана); - Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); - Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); + Ожидаем.Что(Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(1); КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index aeb9315..4f61f26 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -140,7 +140,7 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем.Что(Результат.Запуски).Заполнено(); КонецПроцедуры @@ -159,11 +159,11 @@ // Проверка НаборыПараметров = Результат.ДескрипторыБенчмарков.ПолучитьПервый().НаборыПараметров(); - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(10); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(100); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(20); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(200); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(10); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(100); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(20); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(200); Ожидаем.Что(НаборыПараметров[0].Получить(0).ЭтоПараметрМетода()).ЭтоИстина(); КонецПроцедуры @@ -181,19 +181,19 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(4); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); КонецПроцедуры @@ -221,11 +221,11 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, ТестированиеБенчмарков.КонфигурацияПоУмолчанию()); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(50); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(150); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(200); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(250); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(50); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(150); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(200); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(250); КонецПроцедуры @@ -392,9 +392,9 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); КонецПроцедуры @@ -463,4 +463,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index fcd0319..69b0425 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\321\202\320\265\320\273\321\217\320\244\320\260\320\271\320\273\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:NestedFunctionInParameters-off #Использовать asserts @@ -229,11 +229,11 @@ Ожидаем .Что( - РезультатЗапуска.Отчет.Таблица, + РезультатЗапуска.Отчет.Таблица(), "Неверное количество строк в отчете") .ИмеетДлину(2); - ИменаБенчмарков = РезультатЗапуска.Отчет.Таблица.ВыгрузитьКолонку(КолонкиОтчетаБенчмарков.Метод); + ИменаБенчмарков = РезультатЗапуска.Отчет.Таблица().ВыгрузитьКолонку(КолонкиОтчетаБенчмарков.Метод); Ожидаем .Что( diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index d8b7cd5..2f3d2cc 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:MagicNumber-off #Использовать asserts @@ -26,7 +26,7 @@ // Проверка Ожидаем.Что(Результат.Запуски, "Запуски").ИмеетДлину(1); - Ожидаем.Что(Результат.Отчет.Таблица, "Отчет").ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица(), "Отчет").ИмеетДлину(1); Кейс = Результат.Запуски[0].Кейс; diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index d672f5f..e5372cb 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\276\320\262\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -135,9 +135,9 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(100); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(200); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(100); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Поле")]).Равно(200); КонецПроцедуры @@ -156,7 +156,7 @@ // Проверка ИмяКолонки = КолонкиОтчетаБенчмарков.Параметр("Поле"); - Значения = Результат.Отчет.Таблица.ВыгрузитьКолонку(ИмяКолонки); + Значения = Результат.Отчет.Таблица().ВыгрузитьКолонку(ИмяКолонки); Ожидаем.Что(Значения).ИмеетДлину(4); Ожидаем.Что(Значения).Содержит(Ложь); @@ -201,9 +201,9 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Ложь); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Истина); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Ложь); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(Истина); КонецПроцедуры @@ -219,11 +219,11 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(13); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(15); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(16); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(13); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(15); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(16); КонецПроцедуры @@ -242,11 +242,11 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); КонецПроцедуры @@ -264,11 +264,11 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); КонецПроцедуры @@ -286,11 +286,11 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(9); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(10); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(11); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(12); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(9); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(10); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(11); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(12); КонецПроцедуры @@ -309,15 +309,15 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(4); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(4); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(3); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(4); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(5); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(6); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(7); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(8); КонецПроцедуры @@ -335,9 +335,9 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(13); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")]).Равно(13); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")]).Равно(14); КонецПроцедуры @@ -357,9 +357,9 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(300); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(400); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(300); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(400); КонецПроцедуры @@ -375,9 +375,9 @@ Результат = Бенчмаркинг.Запустить(Дескриптор, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(500); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(600); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(500); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам")]).Равно(600); КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index b230d01..63c80b4 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\230\320\255\320\272\321\201\320\277\320\276\321\200\321\202\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,10 +1,11 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off #Использовать asserts #Использовать "helpers" #Использовать "fixtures/benchmarks" +#Использовать "fixtures/customColumns" #Область Тесты @@ -24,7 +25,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Для Каждого ИмяКолонки Из Колонки Цикл Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки), ИмяКолонки).Не_().ЭтоНеопределено(); @@ -52,7 +53,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Для Каждого ИмяКолонки Из Колонки Цикл Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); @@ -79,7 +80,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(ИмяКолонки)).Не_().ЭтоНеопределено(); Ожидаем.Что(ТаблицаОтчета[0][ИмяКолонки]).Заполнено(); @@ -102,7 +103,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Ожидаем.Что(ТаблицаОтчета.Колонки.Найти(Колонка)).ЭтоНеопределено(); @@ -121,7 +122,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); @@ -150,7 +151,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); КолонкаПроцентиль10 = КолонкиОтчетаБенчмарков.Процентиль(10); КолонкаПроцентиль80 = КолонкиОтчетаБенчмарков.Процентиль(80); @@ -178,7 +179,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Для Каждого Процентиль Из КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию() Цикл ИмяКолонки = КолонкиОтчетаБенчмарков.Процентиль(Процентиль); @@ -204,7 +205,7 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - ТаблицаОтчета = Результат.Отчет.Таблица; + ТаблицаОтчета = Результат.Отчет.Таблица(); Процентили = КолонкаОтчетаБенчмарковПроцентиль.ПроцентилиПоУмолчанию(); Процентили.Добавить(33); @@ -217,6 +218,195 @@ КонецПроцедуры +&Тест +Процедура ТестДолжен_ДобавитьПользовательскуюКолонкуВКонфигурациюИОтчет() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркСПользовательскойКолонкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица(); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти("Пользовательская")).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0]["Пользовательская"]).Равно("custom"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_АвтоматическиОпределитьПользовательскуюКолонкуКакЧисловую() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркСПользовательскойЧисловойКолонкой"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + + // Действие + Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); + + // Проверка + ТаблицаОтчета = Результат.Отчет.Таблица(); + + Ожидаем.Что(ТаблицаОтчета.Колонки.Найти("ПользовательскаяЧисловая")).Не_().ЭтоНеопределено(); + Ожидаем.Что(ТаблицаОтчета[0]["ПользовательскаяЧисловая"]).Равно(42); + Ожидаем.Что(Результат.Отчет.ЭтоЧисловаяКолонка("ПользовательскаяЧисловая")).ЭтоИстина(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НастроитьВычислениеВстроеннойКолонкиЧерезАдаптер() Экспорт + + // Подготовка + Колонка = КолонкиОтчетаБенчмарков.СоздатьСреднее(); + РезультатЗапускаКейса = ТестовыйРезультатЗапускаКейса("10, 20, 30", "100, 200"); + + // Действие + ЗначениеКолонки = Колонка.Значение(РезультатЗапускаКейса, Колонка); + + // Проверка + Ожидаем.Что(Колонка.ДелегатЗначение).Не_().ЭтоНеопределено(); + Ожидаем.Что(ЗначениеКолонки).Равно(20); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НастроитьВычислениеПользовательскойКолонкиЧерезАдаптер() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Колонка = КолонкиОтчетаБенчмарков.СоздатьПользовательскую("Пользовательская"); + + // Действие + ЗначениеКолонки = Колонка.Значение(Неопределено, Колонка); + + // Проверка + Ожидаем.Что(Колонка.ДелегатЗначение).Не_().ЭтоНеопределено(); + Ожидаем.Что(ЗначениеКолонки).Равно("custom"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НастроитьПредставлениеПользовательскойКолонкиЧерезАдаптер() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + РезультатЗапускаКейса = ТестовыйРезультатЗапускаКейса("10, 20, 30"); + + Колонка = КолонкиОтчетаБенчмарков.СоздатьПользовательскую("Пользовательская"); + + ПараметрыПредставления = Новый ПараметрыПредставленияКолонкиОтчетаБенчмарков(); + ПараметрыПредставления.ФорматнаяСтрока = "fmt"; + + // Действие + Представление = Колонка.ПредставлениеЗначения("custom", РезультатЗапускаКейса, ПараметрыПредставления); + + // Проверка + Ожидаем.Что(Колонка.ДелегатПредставлениеЗначения).Не_().ЭтоНеопределено(); + Ожидаем.Что(Представление).Равно("custom|20|fmt"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НастроитьВычислениеПроцентильнойКолонкиЧерезАдаптер() Экспорт + + // Подготовка + Колонка = КолонкиОтчетаБенчмарков.СоздатьПроцентиль(80); + РезультатЗапускаКейса = ТестовыйРезультатЗапускаКейса("12, 15, 22, 25, 17, 28, 14", "100, 101"); + + // Действие + ЗначениеКолонки = Колонка.Значение(РезультатЗапускаКейса, Колонка); + + // Проверка + Ожидаем.Что(Колонка.ДелегатЗначение).Не_().ЭтоНеопределено(); + Ожидаем.Что(ЗначениеКолонки).Равно(24.4); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИзвлечьПользовательскуюКолонкуИзАннотации() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("БенчмаркСПользовательскойКолонкой"); + + // Действие + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + + // Проверка + Ожидаем.Что(Конфигурация.Колонки()).ИмеетДлину(1); + Ожидаем.Что(Конфигурация.Колонки()).Содержит("Пользовательская"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьПользовательскуюКолонкуВКонфигурацию() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("ПустойБенчмарк"); + + // Действие + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + Конфигурация.ДобавитьКолонку("Пользовательская"); + + // Проверка + Ожидаем.Что(Конфигурация.Колонки()).ИмеетДлину(1); + Ожидаем.Что(Конфигурация.Колонки()).Содержит("Пользовательская"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыброситьЧитаемоеИсключениеПриЗапускеСПользовательскойКолонкойВOneScript1() Экспорт + + // Подготовка + Если Не ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Тип = Тип("ПустойБенчмарк"); + + Конфигурация = Новый КонфигурацияБенчмарков(Тип); + ТестированиеБенчмарков.НастроитьКонфигурациюПодТесты(Конфигурация); + Конфигурация.ДобавитьКолонку("Пользовательская"); + + ПараметрыЗапуска = Новый Массив(); + ПараметрыЗапуска.Добавить(Тип); + ПараметрыЗапуска.Добавить(Конфигурация); + + // Действие и Проверка + Ожидаем + .Что(Бенчмаркинг) + .Метод("Запустить", ПараметрыЗапуска) + .ВыбрасываетИсключение("Пользовательские колонки отчета поддерживаются только в OneScript 2.0 и выше."); + +КонецПроцедуры + &Тест Процедура ТестДолжен_УстановитьКаталогАртефактов() Экспорт @@ -266,4 +456,35 @@ КонецПроцедуры -#КонецОбласти \ No newline at end of file +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ТестовыйРезультатЗапускаКейса(СтрокаЗамеровВремени, СтрокаЗамеровПамяти = "") + + Замеры = Новый Структура( + "ЗамерыВремени, ЗамерыПамяти", + МассивЧисел(СтрокаЗамеровВремени), + МассивЧисел(СтрокаЗамеровПамяти) + ); + + РезультатЗапускаКейса = Новый РезультатЗапускаКейса(); + РезультатЗапускаКейса.Статистика = Новый СтатистикаБенчмарка(Замеры); + + Возврат РезультатЗапускаКейса; + +КонецФункции + +Функция МассивЧисел(СтрокаЗначений) + + Результат = Новый Массив(); + + Для Каждого Значение Из СтрРазделить(СтрокаЗначений, ", ", Ложь) Цикл + Результат.Добавить(Число(Значение)); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 55ae292..854fb93 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\201\320\275\320\276\320\262\320\275\321\213\321\205\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -36,9 +36,9 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(10); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(100); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(10); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(100); КонецПроцедуры @@ -59,9 +59,9 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(50); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(150); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(50); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Значение")]).Равно(150); КонецПроцедуры @@ -114,7 +114,7 @@ Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем.Что(Результат.Конфигурация.КоличествоПрогревочныхИтераций()).Равно(КоличествоПрогревочныхИтераций); КонецПроцедуры @@ -135,7 +135,7 @@ Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем.Что(Результат.Конфигурация.МинимальноеВремяИтерации()).Равно(МинимальноеВремяИтерации); КонецПроцедуры @@ -156,7 +156,7 @@ Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем .Что(Результат.Конфигурация.МинимальноеКоличествоВызововЗаИтерацию()) @@ -178,7 +178,7 @@ Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(КоличествоВызововЗаИтерацию); КонецПроцедуры @@ -197,7 +197,7 @@ Результат = Бенчмаркинг.Запустить(Тип("ПустойБенчмарк"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()).Заполнено(); Ожидаем.Что(Результат.Запуски[0].Замеры[0].КоличествоОпераций).Равно(1); КонецПроцедуры diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index c24b65a..d5b378d 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -55,23 +55,23 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); КонецПроцедуры @@ -95,23 +95,23 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); КонецПроцедуры @@ -135,23 +135,23 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); КонецПроцедуры @@ -170,23 +170,23 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[3][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[5][КолонкиОтчетаБенчмарков.Параметр("Параметр")]).Равно(2); КонецПроцедуры @@ -200,10 +200,10 @@ Результат = Бенчмаркинг.Запустить(Тип("БенчмаркСНаименованием"), Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); - ДескрипторСНаименованием = Результат.Отчет.Таблица[0]; - ДескрипторБезНаименования = Результат.Отчет.Таблица[1]; + ДескрипторСНаименованием = Результат.Отчет.Таблица()[0]; + ДескрипторБезНаименования = Результат.Отчет.Таблица()[1]; Ожидаем.Что(ДескрипторСНаименованием[КолонкиОтчетаБенчмарков.Метод]).Равно("Тестовое наименование бенчмарка"); Ожидаем.Что(ДескрипторБезНаименования[КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБезНаименования"); diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index ba9ec7f..5b390a2 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\270\321\217\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -150,7 +150,7 @@ Ожидаем.Что(Результат.ДескрипторыБенчмарков.Количество()).Равно(1); Ожидаем.Что(Результат.Запуски.Количество()).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица.Количество()).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица().Количество()).Равно(1); Ожидаем.Что(Дескриптор.ТипКласса()).Равно(ПодключенныйТип); Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка()).Равно(Дескриптор); Ожидаем.Что(Запуск.Кейс.ДескрипторБенчмарка().ТипКласса()).Равно(ПодключенныйТип); diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" new file mode 100644 index 0000000..a23286f --- /dev/null +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\237\321\200\320\265\320\264\321\201\321\202\320\260\320\262\320\273\320\265\320\275\320\270\321\217\320\232\320\276\320\273\320\276\320\275\320\276\320\272\320\236\321\202\321\207\320\265\321\202\320\260\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -0,0 +1,321 @@ +// BSLLS:DuplicateStringLiteral-off +// BSLLS:MagicNumber-off +// BSLLS:LineLength-off + +#Использовать asserts +#Использовать fs +#Использовать "helpers" +#Использовать "fixtures/customColumns" + +#Область Тесты + +&Тест +Процедура ТестДолжен_СоздатьОтдельнуюКопиюПараметровПредставленияКолонкиДляОтчета() Экспорт + + // Подготовка + Колонка = КолонкиОтчетаБенчмарков.СоздатьСреднее(); + Колонка.ПараметрыПредставления.ФорматнаяСтрока = "ЧДЦ=2"; + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Колонка); + + ПараметрыПредставления = Отчет.ПараметрыПредставленияКолонки(Колонка); + + // Действие + ПараметрыПредставления.ФорматнаяСтрока = "ЧДЦ=4"; + ПараметрыПредставления.Скрыта = Истина; + ПараметрыПредставления.Размер = 10; + + // Проверка + Ожидаем.Что(Колонка.ПараметрыПредставления.ФорматнаяСтрока).Равно("ЧДЦ=2"); + Ожидаем.Что(Колонка.ПараметрыПредставления.Скрыта).Равно(Ложь); + Ожидаем.Что(Колонка.ПараметрыПредставления.Размер).Равно(0); + Ожидаем.Что(ПараметрыПредставления.ФорматнаяСтрока).Равно("ЧДЦ=4"); + Ожидаем.Что(ПараметрыПредставления.Скрыта).Равно(Истина); + Ожидаем.Что(ПараметрыПредставления.Размер).Равно(10); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьКолонкуВОтчетПоИмени() Экспорт + + // Подготовка + Отчет = Новый ОтчетБенчмарков(); + ИмяКолонки = "Среднее"; + + // Действие + Отчет.ДобавитьКолонку(ИмяКолонки); + + // Проверка + Ожидаем.Что(Отчет.Колонки()).ИмеетДлину(1); + Ожидаем.Что(Отчет.Колонки()[0].Имя).Равно("Среднее"); + Ожидаем.Что(Отчет.Таблица().Колонки.Найти("Среднее")).Не_().ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ДобавитьПользовательскуюКолонкуВОтчетПоИмениМодуля() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Отчет = Новый ОтчетБенчмарков(); + ИмяМодуляКолонки = "КолонкаОтчетаБенчмарковПользовательская"; + + // Действие + Отчет.ДобавитьКолонку(ИмяМодуляКолонки); + Отчет.ДобавитьКолонку(ИмяМодуляКолонки); + + // Проверка + Ожидаем.Что(Отчет.Колонки()).ИмеетДлину(1); + Ожидаем.Что(Отчет.Колонки()[0].Имя).Равно("Пользовательская"); + Ожидаем.Что(Отчет.Таблица().Колонки.Найти("Пользовательская")).Не_().ЭтоНеопределено(); + Ожидаем.Что(Отчет.Таблица().Колонки.Найти(ИмяМодуляКолонки)).ЭтоНеопределено(); + Ожидаем.Что(Отчет.ПараметрыПредставленияКолонки(ИмяМодуляКолонки)).Не_().ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_НеДублироватьКолонкуВОтчетеПриПовторномДобавленииПоИмени() Экспорт + + // Подготовка + Отчет = Новый ОтчетБенчмарков(); + ИмяКолонки = "Среднее"; + + // Действие + Отчет.ДобавитьКолонку(ИмяКолонки); + Отчет.ДобавитьКолонку(ИмяКолонки); + + // Проверка + Ожидаем.Что(Отчет.Колонки()).ИмеетДлину(1); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_УдалитьКолонкуИзОтчетаПоИмени() Экспорт + + // Подготовка + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку("Среднее"); + + // Действие + Отчет.УдалитьКолонку("Среднее"); + + // Проверка + Ожидаем.Что(Отчет.Колонки()).ИмеетДлину(0); + Ожидаем.Что(Отчет.Таблица().Колонки.Найти("Среднее")).ЭтоНеопределено(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_СвязатьРезультатЗапускаКейсаПриДобавленииСтрокиВОтчет() Экспорт + + // Подготовка + Отчет = Новый ОтчетБенчмарков(); + РезультатЗапускаКейса = Новый Структура("Идентификатор", "case-1"); + + // Действие + СтрокаОтчета = Отчет.Добавить(РезультатЗапускаКейса); + + // Проверка + Ожидаем.Что(Отчет.РезультатЗапускаКейсаСтроки(СтрокаОтчета)).Равно(РезультатЗапускаКейса); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИспользоватьRuntimeПараметрыПредставленияКолонкиВОтчете() Экспорт + + // Подготовка + Колонка = КолонкиОтчетаБенчмарков.СоздатьСреднее(); + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Колонка); + + ПараметрыПредставления = Отчет.ПараметрыПредставленияКолонки(Колонка); + ПараметрыПредставления.Размер = 6; + ПараметрыПредставления.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(1); + ПараметрыПредставления.ЕдиницаИзмеренияПредставления = ЕдиницыИзмеренийБенчмарков.Миллисекунда; + + СтрокаОтчета = Отчет.Добавить(); + СтрокаОтчета[Колонка.Имя] = 1500000; + + // Действие + Markdown = Отчет.КакMarkdown(); + Легенда = Отчет.Легенда(); + + // Проверка + Ожидаем.Что(Markdown).Содержит("1.5 ms"); + Ожидаем.Что(Легенда).Содержит("1 ms"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОпределитьЧисловуюКолонкуПоДаннымОтчета() Экспорт + + // Подготовка + ЧисловаяКолонка = Новый КолонкаОтчетаБенчмарков("Числовая"); + ТекстоваяКолонка = Новый КолонкаОтчетаБенчмарков("Текстовая"); + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(ЧисловаяКолонка); + Отчет.ДобавитьКолонку(ТекстоваяКолонка); + + СтрокаОтчета = Отчет.Добавить(); + СтрокаОтчета[ЧисловаяКолонка.Имя] = 42; + СтрокаОтчета[ТекстоваяКолонка.Имя] = "custom"; + + // Действие и Проверка + Ожидаем.Что(Отчет.ЭтоЧисловаяКолонка(ЧисловаяКолонка)).ЭтоИстина(); + Ожидаем.Что(Отчет.ЭтоЧисловаяКолонка("Числовая")).ЭтоИстина(); + Ожидаем.Что(Отчет.ЭтоЧисловаяКолонка(ТекстоваяКолонка)).Равно(Ложь); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ОпределитьЧисловуюКолонкуСПустымиЗначениями() Экспорт + + // Подготовка + Колонка = Новый КолонкаОтчетаБенчмарков("Числовая"); + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Колонка); + + СтрокаОтчета = Отчет.Добавить(); + СтрокаОтчета[Колонка.Имя] = 42; + + СтрокаСПустымЗначением = Отчет.Добавить(); + СтрокаСПустымЗначением[Колонка.Имя] = "?"; + + // Действие и Проверка + Ожидаем.Что(Отчет.ЭтоЧисловаяКолонка(Колонка)).ЭтоИстина(); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИсключатьСкрытыеКолонкиИзВидимогоПредставленияОтчета() Экспорт + + // Подготовка + Среднее = КолонкиОтчетаБенчмарков.СоздатьСреднее(); + Среднее.Описание = "Видимая колонка"; + + Медиана = КолонкиОтчетаБенчмарков.СоздатьМедиана(); + Медиана.Описание = "Скрытая колонка"; + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Среднее); + Отчет.ДобавитьКолонку(Медиана); + + ПараметрыСреднего = Отчет.ПараметрыПредставленияКолонки(Среднее); + ПараметрыСреднего.Размер = СтрДлина(Среднее.Заголовок); + ПараметрыСреднего.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(1); + + ПараметрыМедианы = Отчет.ПараметрыПредставленияКолонки(Медиана); + ПараметрыМедианы.Размер = СтрДлина(Медиана.Заголовок); + ПараметрыМедианы.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(1); + ПараметрыМедианы.Скрыта = Истина; + + СтрокаОтчета = Отчет.Добавить(); + СтрокаОтчета[Среднее.Имя] = 15; + СтрокаОтчета[Медиана.Имя] = 10; + + // Действие + ВидимыеКолонки = Отчет.ВидимыеКолонки(); + Markdown = Отчет.КакMarkdown(); + Легенда = Отчет.Легенда(); + + // Проверка + Ожидаем.Что(ВидимыеКолонки.Количество()).Равно(1); + Ожидаем.Что(ВидимыеКолонки[0].Имя).Равно(Среднее.Имя); + Ожидаем.Что(Markdown).Содержит(Среднее.Заголовок); + Ожидаем.Что(Markdown).Не_().Содержит(Медиана.Заголовок); + Ожидаем.Что(Легенда).Содержит(Среднее.Описание); + Ожидаем.Что(Легенда).Не_().Содержит(Медиана.Описание); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИсключатьСкрытыеКолонкиИзHtmlЭкспорта() Экспорт + + // Подготовка + Среднее = КолонкиОтчетаБенчмарков.СоздатьСреднее(); + Медиана = КолонкиОтчетаБенчмарков.СоздатьМедиана(); + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Среднее); + Отчет.ДобавитьКолонку(Медиана); + + ПараметрыСреднего = Отчет.ПараметрыПредставленияКолонки(Среднее); + ПараметрыСреднего.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(1); + + ПараметрыМедианы = Отчет.ПараметрыПредставленияКолонки(Медиана); + ПараметрыМедианы.ФорматнаяСтрока = ПредставленияПоказателейБенчмарков.ФорматнаяСтрокаЧисла(1); + ПараметрыМедианы.Скрыта = Истина; + + СтрокаОтчета = Отчет.Добавить(); + СтрокаОтчета[Среднее.Имя] = 15; + СтрокаОтчета[Медиана.Имя] = 10; + + ПутьКФайлу = ".\\tests\\tmp-hidden-columns-report.html"; + ФС.УдалитьФайлы(ПутьКФайлу); + + РезультатЗапускаБенчмарков = Новый Структура("Отчет, СредаОкружения", Отчет, "test environment"); + + // Действие + ЭкспортерыРезультатовБенчмарков.Html.Записать(РезультатЗапускаБенчмарков, ПутьКФайлу); + Html = ПрочитатьФайл(ПутьКФайлу); + + // Проверка + Ожидаем.Что(Html).Содержит(Среднее.Заголовок); + Ожидаем.Что(Html).Не_().Содержит(Медиана.Заголовок); + + ФС.УдалитьФайлы(ПутьКФайлу); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ИспользоватьРезультатЗапускаКейсаСтрокиВMarkdownПредставлении() Экспорт + + // Подготовка + Если ТестированиеБенчмарков.ЭтоOneScript1() Тогда + Возврат; + КонецЕсли; + + Колонка = КолонкиОтчетаБенчмарков.СоздатьПользовательскую("Пользовательская"); + + Отчет = Новый ОтчетБенчмарков(); + Отчет.ДобавитьКолонку(Колонка); + + ПараметрыПредставления = Отчет.ПараметрыПредставленияКолонки(Колонка); + ПараметрыПредставления.ФорматнаяСтрока = "fmt"; + ПараметрыПредставления.Размер = 20; + + Статистика = Новый Структура("Среднее", 20); + РезультатЗапускаКейса = Новый Структура("Статистика", Статистика); + СтрокаОтчета = Отчет.Добавить(РезультатЗапускаКейса); + СтрокаОтчета[Колонка.Имя] = "custom"; + + // Действие + Markdown = Отчет.КакMarkdown(); + + // Проверка + Ожидаем.Что(Markdown).Содержит("custom|20|fmt"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПрочитатьФайл(ПутьКФайлу) + + ЧтениеТекста = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8); + Содержимое = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + + Возврат Содержимое; + +КонецФункции + +#КонецОбласти diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index 9007eb2..2888834 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200\320\260\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off // BSLLS:MagicDate-off @@ -137,20 +137,20 @@ Отчет = РезультатПрочитанный.Отчет; Ожидаем.Что(Отчет, "Отчет").ИмеетТип("ОтчетБенчмарков"); - Ожидаем.Что(Отчет.Таблица, "Таблица").ИмеетТип("ТаблицаЗначений"); - Ожидаем.Что(Отчет.Таблица, "Таблица").ИмеетДлину(10); - Ожидаем.Что(Отчет.Таблица[0].Метод, "Метод").Равно("Бенчмарк"); - Ожидаем.Что(Отчет.Таблица[0].Категория, "Категория").Равно("Категория 1"); - Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (1)").Равно(""); // Неопределено - Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")], "Парам1 (1)").Равно(3); - Ожидаем.Что(Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")], "Парам2 (1)").Равно(4); - Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (2)").Равно(""); // Неопределено - Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")], "Парам1 (2)").Равно(5); - Ожидаем.Что(Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")], "Парам2 (2)").Равно(6); - Ожидаем.Что(Отчет.Таблица[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (3)").Равно("БенчмаркСПараметрамиМетодаИПоля"); - Ожидаем.Что(Отчет.Таблица[4][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (5)").Равно("ТаблицаЗначений"); - Ожидаем.Что(Отчет.Таблица[6][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (7)").Равно("ЧтениеXML"); - Ожидаем.Что(Отчет.Таблица[8][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (9)").Равно('19700101'); + Ожидаем.Что(Отчет.Таблица(), "Таблица").ИмеетТип("ТаблицаЗначений"); + Ожидаем.Что(Отчет.Таблица(), "Таблица").ИмеетДлину(10); + Ожидаем.Что(Отчет.Таблица()[0].Метод, "Метод").Равно("Бенчмарк"); + Ожидаем.Что(Отчет.Таблица()[0].Категория, "Категория").Равно("Категория 1"); + Ожидаем.Что(Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (1)").Равно(""); // Неопределено + Ожидаем.Что(Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам1")], "Парам1 (1)").Равно(3); + Ожидаем.Что(Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Параметр("Парам2")], "Парам2 (1)").Равно(4); + Ожидаем.Что(Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (2)").Равно(""); // Неопределено + Ожидаем.Что(Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам1")], "Парам1 (2)").Равно(5); + Ожидаем.Что(Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Параметр("Парам2")], "Парам2 (2)").Равно(6); + Ожидаем.Что(Отчет.Таблица()[2][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (3)").Равно("БенчмаркСПараметрамиМетодаИПоля"); + Ожидаем.Что(Отчет.Таблица()[4][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (5)").Равно("ТаблицаЗначений"); + Ожидаем.Что(Отчет.Таблица()[6][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (7)").Равно("ЧтениеXML"); + Ожидаем.Что(Отчет.Таблица()[8][КолонкиОтчетаБенчмарков.Параметр("ПолеОбщее")], "ПолеОбщее (9)").Равно('19700101'); // Действие // Конфигурация diff --git "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" index b6d579d..e4114ef 100644 --- "a/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" +++ "b/tests/\320\242\320\265\321\201\321\202\321\213\320\255\321\202\320\260\320\273\320\276\320\275\320\276\320\262\320\221\320\265\320\275\321\207\320\274\320\260\321\200\320\272\320\276\320\262.os" @@ -1,4 +1,4 @@ -// BSLLS:LineLength-off +// BSLLS:LineLength-off // BSLLS:DuplicateStringLiteral-off // BSLLS:MagicNumber-off @@ -22,11 +22,11 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Заполнено(); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); КонецПроцедуры @@ -46,9 +46,9 @@ Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(1); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(1); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); КонецПроцедуры @@ -69,7 +69,7 @@ Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); // Проверка - Таблица = Результат.Отчет.Таблица; + Таблица = Результат.Отчет.Таблица(); СтрокаА1 = Таблица.Найти("БенчмаркА1", КолонкиОтчетаБенчмарков.Метод); СтрокаБ1 = Таблица.Найти("БенчмаркБ1", КолонкиОтчетаБенчмарков.Метод); @@ -95,15 +95,15 @@ Результат = Бенчмаркинг.Запустить(Тип, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(2); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(2); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(0); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("dev"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Больше(0); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); - Ожидаем.Что(Результат.Отчет.Таблица[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.ВерсияИсполняющейСреды]).Содержит("stable"); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); + Ожидаем.Что(Результат.Отчет.Таблица()[1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); КонецПроцедуры @@ -313,22 +313,22 @@ Результат = Бенчмаркинг.Запустить(ДескрипторыБенчмарков, Конфигурация); // Проверка - Ожидаем.Что(Результат.Отчет.Таблица).ИмеетДлину(7); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); - Ожидаем.Что(Результат.Отчет.Таблица[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно("?"); + Ожидаем.Что(Результат.Отчет.Таблица()).ИмеетДлину(7); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркВ"); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); + Ожидаем.Что(Результат.Отчет.Таблица()[0][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно("?"); Для к = 1 По 3 Цикл Инд1 = к * 2 - 1; Инд2 = к * 2; - Ожидаем.Что(Результат.Отчет.Таблица[Инд1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); - Ожидаем.Что(Результат.Отчет.Таблица[Инд1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); - Ожидаем.Что(Результат.Отчет.Таблица[Инд1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); - Ожидаем.Что(Результат.Отчет.Таблица[Инд2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); - Ожидаем.Что(Результат.Отчет.Таблица[Инд2][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); - Ожидаем.Что(Результат.Отчет.Таблица[Инд2][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Заполнено(); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд1][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркА"); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд1][КолонкиОтчетаБенчмарков.Эталон]).ЭтоИстина(); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд1][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Равно(1); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд2][КолонкиОтчетаБенчмарков.Метод]).Равно("БенчмаркБ"); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд2][КолонкиОтчетаБенчмарков.Эталон]).ЭтоЛожь(); + Ожидаем.Что(Результат.Отчет.Таблица()[Инд2][КолонкиОтчетаБенчмарков.КоэффициентПроизводительности]).Заполнено(); КонецЦикла;
"); Части.Добавить(Колонка.Заголовок); Части.Добавить("
"); - Части.Добавить(Колонка.ПредставлениеЗначения(СтрокаОтчета[Колонка.Имя], СтрокаОтчета)); + Части.Добавить(ПредставлениеЗначения); Части.Добавить("