public void TwoOutOfThree() { var something = new SomethingToShrink { PropertyOne = 42, PropertyTwo = 42, PropertyThree = 42, }; var composite = new ShrinkingStrategy() .Add(Simple.AllValues()) .RegisterAll(something); composite.Shrink(() => something.PropertyOne == 42 && something.PropertyTwo == 42); Assert.False(composite.Shrunk()); Assert.False(composite.Shrunk(something, e => e.PropertyOne)); Assert.False(composite.Shrunk(something, e => e.PropertyTwo)); Assert.True(composite.Shrunk(something, e => e.PropertyThree)); }