Sind ganze Zahlen mit IFixture.Create<int>()
eindeutig?Sind mit AutoFixture 3 generierte Integer-Zahlen eindeutig?
The Wiki says, dass die Zahlen sind zufällig, aber es sagt uns auch diesen
Die ersten Zahlen im Bereich von [1, 255] erzeugt werden, wie dies eine Reihe von Werten, die für alle gültig sind numerische Datentypen Der kleinste numerische Datentyp in .NET ist System.Byte, der in diesen Bereich passt.
Wenn die ersten 255 Zahlen verwendet wurden, Zahlen werden anschließend aus dem Bereich aufgenommen [256, 32767], die für System.Int16 auf die verbleibenden positiven Zahlen verfügbar entspricht.
Zwei ähnliche Dinge auf GitHub:
https://github.com/AutoFixture/AutoFixture/issues/2
https://github.com/AutoFixture/AutoFixture/pull/7
Und was ist mit den Unit-Tests?
https://github.com/AutoFixture/AutoFixture/blob/master/Src/AutoFixtureUnitTest/GeneratorTest.cs#L33
[Theory, ClassData(typeof(CountTestCases))]
public void StronglyTypedEnumerationYieldsUniqueValues(int count)
{
// Fixture setup
var sut = new Generator<T>(new Fixture());
// Exercise system
var actual = sut.Take(count);
// Verify outcome
Assert.Equal(count, actual.Distinct().Count());
// Teardown
}
https://github.com/AutoFixture/AutoFixture/blob/master/Src/AutoFixtureUnitTest/GeneratorTest.cs#L57
[Theory, ClassData(typeof(CountTestCases))]
public void WeaklyTypedEnumerationYieldsUniqueValues(int count)
{
// Fixture setup
IEnumerable sut = new Generator<T>(new Fixture());
// Exercise system
var actual = sut.OfType<T>().Take(count);
// Verify outcome
Assert.Equal(count, actual.Distinct().Count());
// Teardown
}
Ich habe keine Erklärung gefunden, dass die erzeugten Zahlen sind eindeutig sagt, nur jene Bits von Informationen, die es nahe legen würde, aber ich kann falsch sein.