internal ComparableHashSet<ComparableHashSet<string>> GetExpandedChoices(PivotsExpression expr, HashSet<string> pivots, Dictionary<string, Pivots.Pivot> pivotVsPivotValues)
{
ComparableHashSet<ComparableHashSet<string>> result = expr.matching_combinations;
foreach (string pivot in pivots) {
if (expr.relevant_pivots.Contains(pivot))
continue;
ComparableHashSet<ComparableHashSet<string>> new_result = new ComparableHashSet<ComparableHashSet<string>>();
var pivot_choices = pivotVsPivotValues[pivot].Choices.Keys;
foreach (var matching_combination in result) {
foreach (string pivot_choice in pivot_choices) {
ComparableHashSet<string> choices = new ComparableHashSet<string>(matching_combination);
choices.Add(pivot_choice);
new_result.Add(choices);
}
}
result = new_result;
}
return result;
}