- Apr 24, 2017
- Apr 20, 2017
- Mar 05, 2017
-
-
ulif authored
-
- Mar 04, 2017
-
-
ulif authored
-
ulif authored
When using `realdice` randomness source and picking values out of short sequences (sequences shorter than the number of dice sides), we might require additional dice throws (if a value rolled is not in range of sequence length). We now print a hint when this happens.
-
ulif authored
-
- Mar 03, 2017
-
-
ulif authored
-
ulif authored
We avoid the modulo operation now, if it comes to small sequences. Instead we discard invalud rolls and require new ones.
-
ulif authored
-
ulif authored
In order to keep all entropy we could in case of sequence lengths unequal to powers of the number of dice sides just discard rolls and require further ones, until we get a number in the allowed range. But this could potentially require an endless number of rolls. Instead we implement the following policy: If R=log(<sequence_len>) with <number_of_dice_sides> as basis is >= 1, we require int(R) rolls. We will ignore elements in the sequence with index > int(R). Sample: For 6 dice sides and a sequence of 215 (= 6**3 - 1) elements R would be log_6(215) = 2.9975... but we would pick an element from the range [0..35], i.e. (6**2 - 1). If R is 0, we will require exactly one roll, if <sequence_length> is a divisor of <dice_sides>. In all other cases, <sequence_length> is not a divisor of <dice_sides> and <sequence_length> is shorter than the number of dice_sides. In this case we will roll dice until we get a result in [1..<sequence_length>]. Other rolls will simply be discarded.
-
- Feb 27, 2017
-
-
ulif authored
-
ulif authored
-
ulif authored
Sequences with lenths != s**n (with s:= number of dice sides, n := any natural number) require an extra roll.
-
ulif authored
The number of rolls is cruical for the whole `choice` distribution and a specialized function is much better testable.
-
ulif authored
-
ulif authored
-
- Feb 26, 2017
- Feb 25, 2017
-
-
ulif authored
-
- Feb 24, 2017
-
-
ulif authored
-
ulif authored
-
ulif authored
And place the new, integrated fixture on top. We keep it in this module (instead of moving it to conftest.py) because it contains functionality related to randomsources only.
-
ulif authored
-
ulif authored
-
ulif authored
-
ulif authored
Remove usage of old classmethod and the method itself.
-
ulif authored
This one is supposed to replace the existing classmethod and should become a regular fixture.
-
- Feb 19, 2017
-
-
ulif authored
-
- Feb 18, 2017