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> IfSizeIsBelowChaosSize_AndRangeIsZero_ItDoesNotConsumeRandomness() => from seed in DomainGen.Seed() from size in DomainGen.Size(allowChaos: false) from iterations in DomainGen.Iterations() from x in Gen.Int64() select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Int64().Between(x, x); var sample = gen.Advanced.SampleWithMetrics(iterations: iterations, seed: seed, size: size); sample.RandomnessConsumption.Should().Be(0); });
public NebulaCheck.IGen <Test> ItConsumesRandomnessOncePerIteration() => from elementGen in DomainGen.Gen() from iterations in DomainGen.Iterations() from seed in DomainGen.Seed() from size in DomainGen.Size() select Property.ForThese(() => { var gen = elementGen.InfiniteOf(); var sample = gen.Advanced.SampleWithMetrics(iterations: iterations, seed: seed, size: size); sample.RandomnessConsumption.Should().Be(iterations); });
public NebulaCheck.IGen <Test> IfSizeIsBelowChaosSize_AndRangeIsNonZero_ItConsumesRandomnessOncePerIteration() => from seed in DomainGen.Seed() from size in DomainGen.Size(allowChaos: false) from iterations in DomainGen.Iterations() from x in Gen.Int64() from y in Gen.Int64() where x != y select Property.ForThese(() => { var gen = GalaxyCheck.Gen.Int64().Between(x, y); var sample = gen.Advanced.SampleWithMetrics(iterations: iterations, seed: seed, size: size); sample.RandomnessConsumption.Should().Be(sample.Values.Count); });
public NebulaCheck.IGen <Test> IfThePropertyIsInfallible_ItCallsTheTestFunctionForEachIteration() => from gen in DomainGen.Gen() from iterations in DomainGen.Iterations() from seed in DomainGen.Seed() select Property.ForThese(() => { var numberOfCalls = 0; var property = gen.ForAll((_) => { numberOfCalls++; return(true); }); property.Check(iterations: iterations, seed: seed); numberOfCalls.Should().Be(iterations); });
public NebulaCheck.IGen <Test> ItFalsifiesAPropertyThatOnlyFalsifiesAtLargerSizes() => from iterations in DomainGen.Iterations(allowZero: false) from seed in DomainGen.Seed() select Property.ForThese(() => {