BTW in terms of memory efficiency: since `ddt` is not (nor wants to be) a test runner, in order for the test runner to work properly it has to make the class look like it has one different test method per data value - these extra methods are created dynamically at class load time, not at test execution time. Meaning that the whole generator data will have to be materialised in memory anyway, hence there will not be the typical memory savings of other scenarios where generators are used.

If you need to test with large datasets, `ddt` is not going to be a memory efficient approach.
