Здесь он
В проверке Тест SUB 1,2 вызывается первая, одна подпрограмма. Далее просто пишется:
LOGWRITE ("SUB 2")
Может предпологалось вызов SUB 2 из SUB 1?
Нет проверки когда тестируемые команды вложены в циклы или условия. Последние траблы возникали там. Может конечно частный случай.
Пока из теста не работает только arrpop
Глаза поломал пока всё сверил
Предлагаю сделать что нибудь наподобие:
SUB(proverka1, $el1, $target1, $text1)
LOGWRITE ($text1, $el1)
IF($el1 = $target1)
ELSE
LOGWRITE ("Ошибка!!!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
END_IF
END_SUB
LOGWRITE (" ")
LOGWRITE ("тест SQRT")
$SQRT_TEST = SQRT(400)
proverka1($SQRT_TEST, 20, "Возвращает 20: ")
Так будет отрабатывать при ошибке:
LOGWRITE (" ")
LOGWRITE ("тест SQRT")
$SQRT_TEST = SQRT(1000)
proverka1($SQRT_TEST, 20, "ПРИМЕР. Возвращает 20: ")
Это естественно для одного параметра. Для двух вызывать 2 раза или вызывать другой саб:
SUB(proverka2, $el1, $target1, $text1, $el2, $target2, $text2)
LOGWRITE ($text1, $el1)
LOGWRITE ($text2, $el2)
IF(($el1 = $target1) & ($el2 = $target2))
ELSE
LOGWRITE ("Ошибка!!!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
END_IF
END_SUB
Заодно проверим передачу кучи параметров