Previously, the upgrades_analyzer detailed report function would not print combination report if there were too many options. For example, if there were 14 options it will say this:
Combination report not printed because 14 options would require 16369 rows.
This is, however, only the upper limit of how many possible ways 2 or more options can be applied out of 14 options.
(2^14 - 14 -1) = 16369
In reality, the options are typically applied in certain combinations guided by the apply logic and the number of ways they are applied is almost never as high as that upper limit. So, instead of going through each possible combination and counting number of buildings that got applied that combination, in this PR, we directly analyze the number of unique combinations of options being applied to the buildings and list them out.
The result is a much cleaner report of how different combinations of options are being applied to the stock, even for very high number of options in an upgrade.
Resolves #9 .
Pull Request Description
Previously, the upgrades_analyzer detailed report function would not print combination report if there were too many options. For example, if there were 14 options it will say this:
This is, however, only the upper limit of how many possible ways 2 or more options can be applied out of 14 options. (2^14 - 14 -1) = 16369
In reality, the options are typically applied in certain combinations guided by the apply logic and the number of ways they are applied is almost never as high as that upper limit. So, instead of going through each possible combination and counting number of buildings that got applied that combination, in this PR, we directly analyze the number of unique combinations of options being applied to the buildings and list them out.
The result is a much cleaner report of how different combinations of options are being applied to the stock, even for very high number of options in an upgrade.
An example report below: