Полнота логических выражений - PullRequest
0 голосов
/ 03 февраля 2020

У меня проблема с одной задачей. Пользователь может ввести список логических выражений, в моем примере это правила оплаты.

Правило - это объект со свойствами:

  • Платежная система {Visa, Mastercard, ChinaUnionPay, null }
  • Страна {En, Fr, Ge, Ru, null}
  • Location {International, Domesti c, null}

Затем пользователь может создать список этих правил, например:

  • Visa, ноль, домест c -> 5%
  • Mastercard, En, ноль -> 4%
  • null, RU, null -> 5%
  • null, null, международный -> 11%

После настройки правил мы обрабатываем транзакции. Например (Visa, Fr, международный) и мы находим, что комиссия составляет 11%, но для (ChinaUnionPay, Ge, Domesti c) мы не можем найти комиссию, поэтому у нас есть «дыра».

Вопрос в том, заполняет ли это правило все пространство комбинации или нет? Можете ли вы поделиться со мной алгоритмом для его обнаружения. Потому что единственное решение для меня сейчас - это объединить все свойства транзакций и проверить каждую возможность с помощью правил

...