Issue #2916142 by beatrizrodrigues, Chi, yogeshmpawar, tobiberlin, quietone, borisson_: Decimal and Float item generates wrong sample values
parent
1e65e36e7e
commit
b2901ce78c
|
@ -136,8 +136,8 @@ class DecimalItem extends NumericItemBase {
|
|||
// point.
|
||||
// The maximum number you can get with 3 digits is 10^3 - 1 --> 999.
|
||||
// The minimum number you can get with 3 digits is -1 * (10^3 - 1).
|
||||
$max = is_numeric($settings['max']) ?: pow(10, ($precision - $scale)) - 1;
|
||||
$min = is_numeric($settings['min']) ?: -pow(10, ($precision - $scale)) + 1;
|
||||
$max = is_numeric($settings['max']) ? $settings['max'] : pow(10, ($precision - $scale)) - 1;
|
||||
$min = is_numeric($settings['min']) ? $settings['min'] : -pow(10, ($precision - $scale)) + 1;
|
||||
|
||||
// Get the number of decimal digits for the $max
|
||||
$decimal_digits = self::getDecimalDigits($max);
|
||||
|
|
|
@ -64,8 +64,8 @@ class FloatItem extends NumericItemBase {
|
|||
$settings = $field_definition->getSettings();
|
||||
$precision = rand(10, 32);
|
||||
$scale = rand(0, 2);
|
||||
$max = is_numeric($settings['max']) ?: pow(10, ($precision - $scale)) - 1;
|
||||
$min = is_numeric($settings['min']) ?: -pow(10, ($precision - $scale)) + 1;
|
||||
$max = is_numeric($settings['max']) ? $settings['max'] : pow(10, ($precision - $scale)) - 1;
|
||||
$min = is_numeric($settings['min']) ? $settings['min'] : -pow(10, ($precision - $scale)) + 1;
|
||||
// @see "Example #1 Calculate a random floating-point number" in
|
||||
// http://php.net/manual/function.mt-getrandmax.php
|
||||
$random_decimal = $min + mt_rand() / mt_getrandmax() * ($max - $min);
|
||||
|
|
|
@ -95,9 +95,28 @@ class NumberItemTest extends FieldKernelTestBase {
|
|||
|
||||
// Test sample item generation.
|
||||
$entity = EntityTest::create();
|
||||
|
||||
// Make sure that field settings are respected by the generation.
|
||||
$entity->field_decimal
|
||||
->getFieldDefinition()
|
||||
->setSetting('min', 99)
|
||||
->setSetting('max', 100);
|
||||
|
||||
$entity->field_float
|
||||
->getFieldDefinition()
|
||||
->setSetting('min', 99)
|
||||
->setSetting('max', 100);
|
||||
|
||||
$entity->field_integer
|
||||
->getFieldDefinition()
|
||||
->setSetting('min', 99)
|
||||
->setSetting('max', 100);
|
||||
|
||||
$entity->field_decimal->generateSampleItems();
|
||||
$entity->field_integer->generateSampleItems();
|
||||
$entity->field_float->generateSampleItems();
|
||||
$entity->field_decimal->generateSampleItems();
|
||||
|
||||
// Confirm that the generated sample values are within range.
|
||||
$this->entityValidateAndSave($entity);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue