public NebulaCheck.IGen <Test> ItErrorsWhenMinimumLengthIsGreaterThanMaximumLength() => from minLength in Gen.Int32().Between(1, 100) from maxLength in Gen.Int32().GreaterThanEqual(0).LessThan(minLength) from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => {
public NebulaCheck.IGen <Test> ItHasACountLimitEnabledByDefault() => from seed in DomainGen.Seed() from size in DomainGen.Size() from elementGen in DomainGen.Gen() from excessiveCount in Gen.Int32().Between(1001, 2000) select Property.ForThese(() => {
public NebulaCheck.IGen <Test> ItProducesValuesLikeList() => from elementGen in DomainGen.Gen() from count in Gen.Int32().Between(0, 20) from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => {
public NebulaCheck.IGen <Test> IfThereIsOneChoice_ItProducesValuesLikeTheSource() => from choiceGen in DomainGen.Gen() from choiceWeight in Gen.Int32().GreaterThan(1) from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => {
public IGen <Test> ItRendersOneLine() => from value in Gen.Choose(DomainGen.Any(), DomainGen.AnyList()) select Property.ForThese(() => { var rendering = ExampleRenderer.Render(new object[] { value }); rendering.Should().ContainSingle(); });
public NebulaCheck.IGen <Test> ItErrorsWhenMinimumCountIsGreaterThanMaximumCount() => from seed in DomainGen.Seed() from size in DomainGen.Size() from elementGen in DomainGen.Gen() from minCount in Gen.Int32().Between(1, 20) from maxCount in Gen.Int32().GreaterThanEqual(0).LessThan(minCount) select Property.ForThese(() => {
public NebulaCheck.IGen <Test> ItProducesValuesLikeInt32() => from min in Gen.Int16() from max in Gen.Int16().GreaterThanEqual(min) from origin in Gen.Int16().Between(min, max) from bias in DomainGen.Bias() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => {
public NebulaCheck.IGen <Test> ItOnlyCallsThePropertyFunctionOnce() => from gen in DomainGen.Gen() from func in Gen.Function <object, bool>(Gen.Boolean()) from seed in Gen.Int32() let property0 = gen.ForAll(func) let result0 = property0.Check(seed: seed) where result0.Falsified select Property.ForThese(() => {
public NebulaCheck.IGen <Test> TheDefaultMinimumIsTheMinimumInt32() => from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen0 = GalaxyCheck.Gen.Char(); var gen1 = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.All); SampleTraversal(gen0, seed, size).Should().BeEquivalentTo(SampleTraversal(gen1, seed, size)); });
public NebulaCheck.IGen <Test> IfDeepCheckIsDisabled_ForAnEasilyFalsifiableProperty_ItIsLimitedByDeepCheckDisabled() => from seed in DomainGen.Seed() select Property.ForThese(() => { var property = GalaxyCheck.Gen.Int32().ForAll(x => x < 1); var result = property.Check(seed: seed, deepCheck: false); result.TerminationReason.Should().Be(GalaxyCheck.Runners.Check.TerminationReason.DeepCheckDisabled); });
public IGen <Test> IfListLengthIsLessThanDoubleMinLength_ItWillNotShrink() => from minLength in TestGen.MinLength(minMinLength: 1) from list in DomainGen.AnyList().WithCountLessThan(minLength * 2) select Property.ForThese(() => { var func = ShrinkFunc.Bisect <object>(minLength); var shrinks = func(list.ToList()); shrinks.Should().BeEmpty(); });
public IGen <Test> IfListHasOneElement_ItWillNotShrink() => from minLength in TestGen.MinLength() from list in DomainGen.AnyList().WithCount(1) select Property.ForThese(() => { var func = ShrinkFunc.Bisect <object>(minLength); var shrinks = func(list.ToList()); shrinks.Should().BeEmpty(); });
public NebulaCheck.IGen <Test> IfCharTypeIsControl_ItOnlyProducesCharactersInControlAsciiSet() => from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.Control); var sample = SampleTraversal(gen, seed, size); sample.Should().OnlyContain(c => c <= 37 || c == 127); });
public NebulaCheck.IGen <Test> IfCharTypeIsNumeric_ItOnlyProducesNumericCharacters() => from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.Numeric); var sample = SampleTraversal(gen, seed, size); sample.Should().OnlyContain(c => new Regex(@"[0-9]").IsMatch(c.ToString())); });
public NebulaCheck.IGen <Test> ItIsAffectedByItsArgument() => from variables in Gen.Int32().WithBias(Gen.Bias.None).Two().ListOf().WithCount(10) from seed in DomainGen.Seed() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Int32().FunctionOf <object, int>(); var func = gen.SampleOne(seed: seed, size: 100); variables.Should().Contain(variable => func(variable.Item1) != func(variable.Item2)); });
public IGen <Test> ItWillProduceDistinctShrinks() => from minLength in TestGen.MinLength() from list in DomainGen.AnyList().WithCountGreaterThan(minLength) select Property.ForThese(() => { var func = ShrinkFunc.DropOne <object>(minLength); var shrinks = func(list.ToList()); shrinks.Should().OnlyHaveUniqueItems(); });
public IGen <Test> ItWillProducesShrinksThatCanRecreateTheOriginalList() => from minLength in TestGen.MinLength() from list in DomainGen.AnyList().WithCountGreaterThanEqual((minLength + 1) * 2) select Property.ForThese(() => { var func = ShrinkFunc.Bisect <object>(minLength); var shrinks = func(list.ToList()); shrinks.SelectMany(x => x).Should().BeEquivalentTo(list.ToList()); });
public IGen <Test> IfKIsOne_ItProducesAListOfEachSingleElement() => from list in DomainGen.AnyList().WithCountGreaterThanEqual(2) select Property.ForThese(() => { var func = ShrinkFunc.OtherCombinations <object>(1); var shrinks = func(list.ToList()); shrinks.Should().HaveCount(list.Count); shrinks.SelectMany(x => x).Should().BeEquivalentTo(list); });
public NebulaCheck.IGen <Test> Otherwise_ItShrinksToNullCharacter() => from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.Control); var minimum = gen.Minimum(seed: seed, size: size); minimum.Should().Be('\u0000'); });
public IGen <Test> IfListCountIsGreaterThanK_ItWillShrink() => from k in Gen.Int32().Between(1, 20) from list in DomainGen.AnyList().WithCountGreaterThan(k) select Property.ForThese(() => { var func = ShrinkFunc.OtherCombinations <object>(k); var shrinks = func(list.ToList()); shrinks.Should().NotBeEmpty(); });
public NebulaCheck.IGen <Test> ItExhaustsWithAnImpossiblePredicate() => from elementGen in DomainGen.Gen() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = elementGen.Where(_ => false).InfiniteOf(); Action test = () => gen.SampleOne(seed: seed, size: size).Take(1).ToList(); test.Should().Throw <GalaxyCheck.Exceptions.GenExhaustionException>(); });
public NebulaCheck.IGen <Test> IfThePropertyIsInfallible_ItReturnsTheGivenIterations() => from gen in DomainGen.Gen() from iterations in DomainGen.Iterations() from seed in DomainGen.Seed() select Property.ForThese(() => { var property = gen.ForAll((_) => true); var result = property.Check(iterations: iterations, seed: seed); result.Iterations.Should().Be(iterations); });
public NebulaCheck.IGen <Test> OtherwiseIfCharTypeHasWhitespace_ItShrinksToSpace() => from charType in TestGen.CharType(GalaxyCheck.Gen.CharType.Alphabetical) from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.Whitespace | charType); var minimum = gen.Minimum(seed: seed, size: size); minimum.Should().Be(' '); });
public NebulaCheck.IGen <Test> IfCharTypeHasAlphabetical_ItShrinksToLowercaseA() => from charType in TestGen.CharType() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Char(GalaxyCheck.Gen.CharType.Alphabetical | charType); var minimum = gen.Minimum(seed: seed, size: size); minimum.Should().Be('a'); });
public NebulaCheck.IGen <Test> ItDoesNotConsumeRandomness() => from value in DomainGen.Any() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Constant(value); var sample = gen.Advanced.SampleOneWithMetrics(seed: seed, size: size); sample.RandomnessConsumption.Should().Be(0); });
public NebulaCheck.IGen <Test> ItProducesValuesDeterministically() => from elementGen in DomainGen.Gen() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = elementGen.InfiniteOf(); var sample = gen.SampleOne(seed: seed, size: size); sample.Take(10).Should().BeEquivalentTo(sample.Take(10)); });
public NebulaCheck.IGen <Test> ItShrinksToTheOrigin() => from bias in DomainGen.Bias() from origin in Gen.Int64() from seed in DomainGen.Seed() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Int64().WithBias(bias).ShrinkTowards(origin); var minimum = gen.Minimum(seed: seed); minimum.Should().Be(origin); });
public NebulaCheck.IGen <Test> ItIsPure() => from returnGen in DomainGen.Gen() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = returnGen.FunctionOf(); var func = gen.SampleOne(seed: seed, size: size); func().Should().Be(func()); });
public NebulaCheck.IGen <Test> ItCanGenerateAnEmptyRecord() => from value in DomainGen.Any() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Create <EmptyRecord>(); var instance = gen.SampleOne(seed: seed, size: size); instance.Should().NotBeNull(); });
public IGen <Test> ItWillProduceTwoShrinksOfSimilarLengths() => from minLength in TestGen.MinLength() from list in DomainGen.AnyList().WithCountGreaterThanEqual((minLength + 1) * 2) select Property.ForThese(() => { var func = ShrinkFunc.Bisect <object>(minLength); var shrinks = func(list.ToList()); shrinks.Should().HaveCount(2); shrinks.First().Count.Should().BeCloseTo(shrinks.Skip(1).Single().Count, 1); });