First of all, I would like to say, that your code looks good, and I like it.
I would like to make some addition and create a pull request, but before I do it I want to ask a few questions:
I see, that minimum requested PHP version is 5.3, which doesn't support strict types. I would like to add to each method return type, and to each parameter type, but then the PHP version should be upgraded - is that ok for you?
I see, that some places are not valid with PSR. Do you mind to reformat your code a little bit?
You are using nette tester for tests. Why not PHPUnit? Is it a reason for that? If not, do you mind to rewrite all tests to PHPUnit?
I would like to write a simpler way to retrieve a solution (for now as I see in tests, we have to perform some foreach to find the answer). Is that ok for you, or do you see some issues here?
After all, I would like to create a wrapper for Laravel (just to let you know).
Hello.
First of all, I would like to say, that your code looks good, and I like it. I would like to make some addition and create a pull request, but before I do it I want to ask a few questions: