У меня проблема с одной задачей. Пользователь может ввести список логических выражений, в моем примере это правила оплаты.
Правило - это объект со свойствами:
- Платежная система {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) мы не можем найти комиссию, поэтому у нас есть «дыра».
Вопрос в том, заполняет ли это правило все пространство комбинации или нет? Можете ли вы поделиться со мной алгоритмом для его обнаружения. Потому что единственное решение для меня сейчас - это объединить все свойства транзакций и проверить каждую возможность с помощью правил