tests/unit/number_normalize_decimal.phpt

Summary

Maintainability
Test Coverage
<?php

use \Tester\Assert;

use \Smuuf\Primi\Helpers\Func;

require __DIR__ . '/../bootstrap.php';

//
// Numeric string detection.
//

Assert::same('0', Func::normalize_decimal('0'));
Assert::same('0', Func::normalize_decimal('0.0'));
Assert::same('0', Func::normalize_decimal('00.0'));
Assert::same('0', Func::normalize_decimal('00000.0'));
Assert::same('0.1', Func::normalize_decimal('0.1'));
Assert::same('0.1', Func::normalize_decimal('0.10'));
Assert::same('0.1', Func::normalize_decimal('0.10000'));
Assert::same('0.1', Func::normalize_decimal('00.1'));
Assert::same('0.1', Func::normalize_decimal('000.10'));
Assert::same('0.1', Func::normalize_decimal('0000.10000'));
Assert::same('1.1', Func::normalize_decimal('001.1'));
Assert::same('1.1', Func::normalize_decimal('0001.10'));
Assert::same('1.1', Func::normalize_decimal('00001.10000'));
Assert::same('5001.1', Func::normalize_decimal('5001.1'));
Assert::same('5001.1', Func::normalize_decimal('005001.10'));
Assert::same('5001.1', Func::normalize_decimal('0000005001.10000'));
Assert::same('5001.10000001', Func::normalize_decimal('5001.10000001'));
Assert::same('5001.10000001', Func::normalize_decimal('005001.10000001'));
Assert::same('5001.10000001', Func::normalize_decimal('0000005001.10000001000'));

Assert::same('100.01', Func::normalize_decimal('+100.0100'));
Assert::same('100.01', Func::normalize_decimal('+00100.0100'));
Assert::same('-100.01', Func::normalize_decimal('-100.0100'));
Assert::same('-100.01', Func::normalize_decimal('-00100.0100'));

//
// Very long decimals.
//

Assert::same(
    '456000000000012300000',
    Func::normalize_decimal('0000000000000000456000000000012300000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')
);
Assert::same(
    '456000000000012300000',
    Func::normalize_decimal('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')
);
Assert::same(
    '456000000000012300000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001',
    Func::normalize_decimal('000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
);
Assert::same(
    '3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001',
    Func::normalize_decimal('003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001')
);
Assert::same(
    '3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001',
    Func::normalize_decimal('0000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000456000000000012300000.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000')
);