ScenarioDefinition implements ImmutableBean { public static ScenarioDefinition ofAllCombinations(List<? extends PerturbationMapping<?>> mappings) { int numScenarios = countScenarios(mappings, true); ImmutableSet<String> scenarioNames = generateNames(numScenarios); return new ScenarioDefinition(createScenarios(scenarioNames, mappings, true)); } private  ScenarioDefinition(
      List<SingleScenarioDefinition> scenarios); static ScenarioDefinition ofScenarios(List<SingleScenarioDefinition> scenarios); static ScenarioDefinition ofScenarios(SingleScenarioDefinition... scenarios); static ScenarioDefinition ofMappings(List<? extends PerturbationMapping<?>> mappings); static ScenarioDefinition ofMappings(
      ImmutableSet<String> scenarioNames,
      List<? extends PerturbationMapping<?>> mappings); static ScenarioDefinition ofAllCombinations(List<? extends PerturbationMapping<?>> mappings); static ScenarioDefinition ofAllCombinations(
      ImmutableSet<String> scenarioNames,
      List<? extends PerturbationMapping<?>> mappings); static ScenarioDefinition.Meta meta(); static ScenarioDefinition.Builder builder(); @Override ScenarioDefinition.Meta metaBean(); @Override Property<R> property(String propertyName); @Override Set<String> propertyNames(); ImmutableList<SingleScenarioDefinition> getScenarios(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }
@Test(expectedExceptions = IllegalArgumentException.class) public void allCombinationsOfWrongNumberOfScenarioNames() { List<PerturbationMapping<TestPerturbation>> mappings = ImmutableList.of(MAPPING_A, MAPPING_B, MAPPING_C); ImmutableSet<String> scenarioNames = ImmutableSet.of("foo1", "foo2", "foo3", "foo4", "foo5", "foo6", "foo7"); ScenarioDefinition.ofAllCombinations(scenarioNames, mappings); }