Interview assignment for Typequast.
The solution assumes that discount rules are represented as a set of three strings. Similar to how they may be represented in a database.
The RuleEngine for compilying these rules is taken from: https://dotnetfiddle.net/3O6vVH
The solution also uses NUnit and Moq for unit testing.