IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Сравнение таблиц в Фанктесте, Есть ли возможности ускорения?
artbear
сообщение Mar 5 2006, 14:44
Сообщение #1


Продвинутый
***

Группа: Пользователи
Сообщений: 887
Регистрация: 25-July 03
Из: Башкортостан
Пользователь №: 13



Появилась предложение:
может быть, есть смысл добавить в 1С++
отдельный объект [/b]TableDiff[/b] ( или FunctestTableDiff),
который будет заниматься сравнением таблиц и показом их различий,
и который заменит метод СравнениеТаблиц в Фанктесте,
и в этом новом объекте учесть все нюансы сравнения.
ИМХО будет намного быстрее, чем кодом 1С
У Фанктеста лично для меня это самый тяжкий момент - когда он долго сравнивает ожидания и результаты теста, идет просто тупой перебор и сравнения по ячейкам.
Для больших таблиц ну очень-очень долго sad.gif
ЗЫ предлагаю эту роль для kms smile.gif


--------------------
[span style='color:blue']Эх, дайте что-нибудь новенькое да полезное потестить ;-)[/span]
[span style='color:blue']1C++ developer :)[/span] www.1cpp.ru
[span style='color:blue']OpenConf developer :: [/span] openconf.itland.ru
[span style='color:blue']FormEx developer :)[/span] formex.dorex.ru
[span style='color:blue']1C++ active tester :)[/span] www.1cpp.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kms
сообщение Mar 5 2006, 14:51
Сообщение #2


Продвинутый
***

Группа: Пользователи
Сообщений: 528
Регистрация: 28-September 05
Пользователь №: 5238



Переезжаем smile.gif
[hr]
Спасибо за предложение

Артур, набросай, как ты видишь эффективное сравнение для фанктеста.
Я смотрел то, что в фанктесте, имхо его надо делать все же внутри 1С, упростив, по возможности.

Там же, в принципе, теперь несложно - замена пустых на одинаковые пустые в исходных таблицах, разность и обратная сортировка по колонкам с точностью.
В итоге должно получиться либо пустой результат, либо первая же строка должна быть в пределах точности.
Как-то так.
[hr]
Не, не так

1. Замена разных пустых на одинаковые
2. Замена в одной из таблиц колонок для сравнения с точностью на отрицательные
3. Объединение таблиц
4. Свернуть по колонкам без точности, суммировать колонки с точностью
5. Построить индекс по колонкам с точностью
6. Проверить наличие значений больше заданной точности

В итоге если что и можно добавить в ИТ - это метод инверсии числовой колонки и модификатор сравнения пустых значений без учета типа.
Да, еще, возможно, нужен модификатор сравнения строк без учета пробелов.

И хотелось бы уйти от сравнения таблиц, где в неключевых колонках то числа, то строки - такие таблицы в тестах, наверное, не очень хорошо.

P.S.
Можно решать как говорит NS - п.2а - добавление колонки в обе таблицы с дополняющими значениями типа 1 и -1.
Можно вместо этого анализировать результат метода Разность() - для ключевых колонок он по-любому должен быть пустым.


--------------------
осторожно, открывается вовнутрь!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kms
сообщение Mar 5 2006, 15:17
Сообщение #3


Продвинутый
***

Группа: Пользователи
Сообщений: 528
Регистрация: 28-September 05
Пользователь №: 5238



Хотелось бы услышать мнение разработчиков тестов по следующему вопросу.

Процедуру сравнения таблиц хотелось бы сделать более структурированной.
Во-первых, нужно отделить ключевые колонки, которые обязаны совпадать 100%.
Во-вторых, строки должны являться ключевыми колонками, а не значениями, как сейчас.

Таким образом процедура должна выглядеть как-то так:
Код
СравнитьТаблицы(__т1, __т2, __стрСписокКлючевыхКолонокЧерезЗапятую, __стрСписокЧисловыхКолонокЧерезЗапятую, __точность)


Для ключевых колонок, для которых пустые значения разных типов должны сравниваться как одинаковые, утвердим отдельный модификатор.
Для ключевых колонок, которые нужно сравнивать без учета пробелов, можно сделать также отдельный модификатор, если это нужно.

Для сравнения без учета пробелов достаточно СокрЛП(), или нужна продвинутая логика?


--------------------
осторожно, открывается вовнутрь!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
jbond
сообщение May 10 2006, 13:22
Сообщение #4


Пользователь
**

Группа: Пользователи
Сообщений: 87
Регистрация: 13-September 04
Пользователь №: 2278



Я так понимаю, эффективного метода сравнения таблиц по ключу пока в ФанкТесте нет.

Зы. А почему бы и не ввести поддержку ИндексированнойТаблицы вместо таблицы значений.

Ведь бинарный поиск эффективней.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
artbear
сообщение May 10 2006, 16:36
Сообщение #5


Продвинутый
***

Группа: Пользователи
Сообщений: 887
Регистрация: 25-July 03
Из: Башкортостан
Пользователь №: 13



Никто не мешает самим написать нужный код smile.gif
учтя все пожелания и комментарии.
Всегда готов участвовать в обсуждении, тестировании и доработке smile.gif
ЗЫ на разработку с нуля у меня пока времени нет sad.gif


--------------------
[span style='color:blue']Эх, дайте что-нибудь новенькое да полезное потестить ;-)[/span]
[span style='color:blue']1C++ developer :)[/span] www.1cpp.ru
[span style='color:blue']OpenConf developer :: [/span] openconf.itland.ru
[span style='color:blue']FormEx developer :)[/span] formex.dorex.ru
[span style='color:blue']1C++ active tester :)[/span] www.1cpp.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19th July 2019 - 17:13