|
|
||
|---|---|---|
| .gitignore | ||
| EN-RuleEngineChallenge-080417-1436.pdf | ||
| README.md | ||
| quartic_rule.py | ||
| quartic_rule_test.py | ||
| raw_data.json | ||
| rules.txt | ||
| rules_test.txt | ||
README.md
Approach
Rule engine supports only simple comparison operators. The trade-off of this approach is that you can't encode complex rules. To be able to support more robust rules we could embed a scripting languages like lua, possibly at the cost of performance bottlenecks.
Performance
for 200*4=800 sig and 3 rules this python code takes about 0.04 secs on a AMD6410. The complexity of the rule engine is O(1) on the rule list selection based on the signal, O(n) on the application of those rules.
Final Thoughts
- Could have improved performance and reduced resouce usage by actually streaming the json, might introduce additionaly dependency
- Add support for more features for the rules