Функции проверки последовательности#
1. Проверка возрастающей последовательности (increase)#
Функция «increase» возвращает значение типа boolean:
true — если закономерность выполняется;
false — если закономерность не выполняется.
Варианты написания функции:
increase;
Increase;
INCREASE.
Синтаксис#
increase("array", "field")
increase("array", "field", "parameter")
Аргументы#
array — массив сообщений, поля из которых анализируются.
field — строковое наименование поля в сообщениях, которое начинается с символа
*(например:*.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.parameter (дополнительный параметр) — процентное значение изменения между каждыми соседними сообщениями. Если параметр указан, то дополнительно проверяется, что каждое следующее значение больше предыдущего не менее, чем на <дополнительный параметр>%.
Пример использования функции#
Правило трансформации:
define testVar1 = [emptyObject(), emptyObject(), emptyObject()]
$testVar1[0].test = "10"
$testVar1[1].test = "12"
$testVar1[2].test = "14"
define res = increase($testVar1, *.test)
out.increase = $res
define res1 = increase($testVar1, *.test, 10)
out.increase1 = $res1
define res2 = increase($testVar1, *.test, 30)
out.increase2 = $res2
Выходящее сообщение:
{
"increase":true,
"increase1":true,
"increase2":false
}
2. Проверка убывающей последовательности (decrease)#
Функция «decrease» возвращает значение типа boolean:
true — если закономерность выполняется;
false — если закономерность не выполняется.
Варианты написания функции:
decrease;
Decrease;
DECREASE.
Синтаксис#
decrease("array", "field")
decrease("array", "field", "parameter")
Аргументы#
array — массив сообщений, поля из которых анализируются.
field — строковое наименование поля в сообщениях, которое начинается с символа
*(например:*.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.parameter (дополнительный параметр) — процентное значение изменения между каждыми соседними сообщениями. Если параметр указан, то дополнительно проверяется, что каждое следующее значение меньше предыдущего не менее, чем на <дополнительный параметр>%.
Пример использования функции#
Правило трансформации:
define testVar1 = [emptyObject(), emptyObject(), emptyObject()]
$testVar1[0].test = "13"
$testVar1[1].test = "12"
$testVar1[2].test = "11"
define decrease = decrease($testVar1, *.test)
out.decrease = $decrease
define decrease1 = decrease($testVar1, *.test, 5)
out.decrease1 = $decrease1
define decrease2 = decrease($testVar1, *.test, 30)
out.decrease2 = $decrease2
Выходящее сообщение:
{
"decrease":true,
"decrease1":true,
"decrease2":false
}
3. Проверка неизменяющейся последовательности (stable)#
Функция «stable» возвращает значение типа boolean:
true — если закономерность выполняется;
false — если закономерность не выполняется.
Варианты написания функции:
stable;
Stable;
STABLE.
Синтаксис#
stable("array", "field")
stable("array", "field", "parameter")
Аргументы#
array — массив сообщений, поля из которых анализируются.
field — строковое наименование поля в сообщениях, которое начинается с символа
*(например:*.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.parameter (дополнительный параметр) — процентное значение изменения между каждыми соседними сообщениями. Если указан, то значения попарно различаются не более чем на <дополнительный параметр>% от более раннего из пары.
Пример использования функции#
Правило трансформации:
define testVar1 = [emptyObject(), emptyObject(), emptyObject()]
$testVar1[0].test = "1"
$testVar1[1].test = "1"
$testVar1[2].test = "1"
define stable = stable($testVar1, *.test)
out.stable = $stable
Выходящее сообщение:
{
"stable":true
}