Функции проверки последовательности#

1. Проверка возрастающей последовательности (increase)#

Функция «increase» возвращает значение типа boolean:

  • true — если закономерность выполняется;

  • false — если закономерность не выполняется.

Варианты написания функции:

  • increase;

  • Increase;

  • INCREASE.

Синтаксис#

increase("array", "field")
increase("array", "field", "parameter")

Аргументы#

  1. array — массив сообщений, поля из которых анализируются.

  2. field — строковое наименование поля в сообщениях, которое начинается с символа * (например: *.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.

  3. 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")

Аргументы#

  1. array — массив сообщений, поля из которых анализируются.

  2. field — строковое наименование поля в сообщениях, которое начинается с символа * (например: *.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.

  3. 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")

Аргументы#

  1. array — массив сообщений, поля из которых анализируются.

  2. field — строковое наименование поля в сообщениях, которое начинается с символа * (например: *.test). Поддерживается вложенность, т.е. если поле находится в сообщении не на первом уровне, то наименование будет выглядеть «*.<имя родительского блока>.<имя поля>» от корня сообщения. Если в сообщении найдено несколько таких полей, то выдается ошибка обработки. На данном этапе предполагается анализ только числовых значений.

  3. 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
}