From ffaadd9d3cbdd548804c16a27d50c2e12f974980 Mon Sep 17 00:00:00 2001 From: k-holy Date: Wed, 19 Mar 2014 11:06:32 +0900 Subject: [PATCH 1/2] Tests to tests --- Tests/RadixConverterTest.php | 339 ----------------------------------- Tests/bootstrap.php | 20 --- 2 files changed, 359 deletions(-) delete mode 100644 Tests/RadixConverterTest.php delete mode 100644 Tests/bootstrap.php diff --git a/Tests/RadixConverterTest.php b/Tests/RadixConverterTest.php deleted file mode 100644 index 885056a..0000000 --- a/Tests/RadixConverterTest.php +++ /dev/null @@ -1,339 +0,0 @@ - - * @license The MIT License (MIT) - */ -namespace Volcanus\RadixConverter\Tests; - -use Volcanus\RadixConverter\RadixConverter; - -/** - * RadixConverterTest - * - * @author k.holy74@gmail.com - */ -class RadixConverterTest extends \PHPUnit_Framework_TestCase -{ - - public function setUp() - { - $this->converter = new RadixConverter(); - } - - public function testValueForEncode() - { - $this->converter->value(99); - $this->assertEquals(99, $this->converter->value()); - } - - public function testValueForDecode() - { - $this->converter->value('ABC'); - $this->assertEquals('ABC', $this->converter->value()); - } - - public function testEncode() - { - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('a', $this->converter->encode(10)->value()); - $this->assertEquals('10', $this->converter->encode(62)->value()); - $this->assertEquals('47', $this->converter->encode(255)->value()); - $this->assertEquals('h31', $this->converter->encode(65535)->value()); - $this->assertEquals('2lkCB1', $this->converter->encode(2147483647)->value()); - } - - public function testDecode() - { - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(10, $this->converter->decode('a')->value()); - $this->assertEquals(62, $this->converter->decode('10')->value()); - $this->assertEquals(255, $this->converter->decode('47')->value()); - $this->assertEquals(65535, $this->converter->decode('h31')->value()); - $this->assertEquals(2147483647, $this->converter->decode('2lkCB1')->value()); - } - - public function testEncodeByCallStatic() - { - $this->assertEquals('0', RadixConverter::encode(0)); - $this->assertEquals('1', RadixConverter::encode(1)); - $this->assertEquals('a', RadixConverter::encode(10)); - $this->assertEquals('10', RadixConverter::encode(62)); - $this->assertEquals('47', RadixConverter::encode(255)); - $this->assertEquals('h31', RadixConverter::encode(65535)); - $this->assertEquals('2lkCB1', RadixConverter::encode(2147483647)); - } - - public function testDecodeByCallStatic() - { - $this->assertEquals(0, RadixConverter::decode('0')); - $this->assertEquals(1, RadixConverter::decode('1')); - $this->assertEquals(10, RadixConverter::decode('a')); - $this->assertEquals(62, RadixConverter::decode('10')); - $this->assertEquals(255, RadixConverter::decode('47')); - $this->assertEquals(65535, RadixConverter::decode('h31')); - $this->assertEquals(2147483647, RadixConverter::decode('2lkCB1')); - } - - /** - * @requires extension bcmath - */ - public function testEncodeAcceptLongOn32Bit() - { - $this->converter->config('acceptLong', true); - $this->assertEquals('2lkCB2', $this->converter->encode('2147483648')->value()); - } - - /** - * @requires extension bcmath - */ - public function testDecodeAcceptLongOn32Bit() - { - $this->converter->config('acceptLong', true); - $this->assertEquals('2147483648', $this->converter->decode('2lkCB2')->value()); - } - - /** - * @requires extension bcmath - */ - public function testEncodeAcceptLongOn64Bit() - { - $this->converter->config('acceptLong', true); - $this->assertEquals('aZl8N0y58M8', $this->converter->encode('9223372036854775808')->value()); - } - - /** - * @requires extension bcmath - */ - public function testDecodeAcceptLongOn64Bit() - { - $this->converter->config('acceptLong', true); - $this->assertEquals('9223372036854775808', $this->converter->decode('aZl8N0y58M8')->value()); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRaiseExceptionWhenNotAcceptLong() - { - $this->converter->config('acceptLong', false)->encode(strval(PHP_INT_MAX + 1)); - } - - public function testToString() - { - $this->assertEquals('10', (string)$this->converter->encode(62)); - $this->assertEquals('62', (string)$this->converter->decode('10')); - } - - public function testBinaryEncode() - { - $this->converter->config('map', RadixConverter::MAP_BINARY); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('10', $this->converter->encode(2)->value()); - $this->assertEquals('1010', $this->converter->encode(10)->value()); - $this->assertEquals('11111111', $this->converter->encode(255)->value()); - $this->assertEquals('1111111111111111', $this->converter->encode(65535)->value()); - $this->assertEquals('1111111111111111111111111111111', $this->converter->encode(2147483647)->value()); - } - - public function testBinaryDecode() - { - $this->converter->config('map', RadixConverter::MAP_BINARY); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(2, $this->converter->decode('10')->value()); - $this->assertEquals(10, $this->converter->decode('1010')->value()); - $this->assertEquals(255, $this->converter->decode('11111111')->value()); - $this->assertEquals(65535, $this->converter->decode('1111111111111111')->value()); - $this->assertEquals(2147483647, $this->converter->decode('1111111111111111111111111111111')->value()); - } - - public function testOctalEncode() - { - $this->converter->config('map', RadixConverter::MAP_OCTAL); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('10', $this->converter->encode(8)->value()); - $this->assertEquals('12', $this->converter->encode(10)->value()); - $this->assertEquals('377', $this->converter->encode(255)->value()); - $this->assertEquals('177777', $this->converter->encode(65535)->value()); - $this->assertEquals('17777777777', $this->converter->encode(2147483647)->value()); - } - - public function testOctalDecode() - { - $this->converter->config('map', RadixConverter::MAP_OCTAL); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(8, $this->converter->decode('10')->value()); - $this->assertEquals(10, $this->converter->decode('12')->value()); - $this->assertEquals(255, $this->converter->decode('377')->value()); - $this->assertEquals(65535, $this->converter->decode('177777')->value()); - $this->assertEquals(2147483647, $this->converter->decode('17777777777')->value()); - } - - public function testDecimalEncode() - { - $this->converter->config('map', RadixConverter::MAP_DECIMAL); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('10', $this->converter->encode(10)->value()); - $this->assertEquals('255', $this->converter->encode(255)->value()); - $this->assertEquals('65535', $this->converter->encode(65535)->value()); - $this->assertEquals('2147483647', $this->converter->encode(2147483647)->value()); - } - - public function testDecimalDecode() - { - $this->converter->config('map', RadixConverter::MAP_DECIMAL); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(10, $this->converter->decode('10')->value()); - $this->assertEquals(255, $this->converter->decode('255')->value()); - $this->assertEquals(65535, $this->converter->decode('65535')->value()); - $this->assertEquals(2147483647, $this->converter->decode('2147483647')->value()); - } - - public function testHexadecimalEncode() - { - $this->converter->config('map', RadixConverter::MAP_HEXADECIMAL); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('a', $this->converter->encode(10)->value()); - $this->assertEquals('10', $this->converter->encode(16)->value()); - $this->assertEquals('ff', $this->converter->encode(255)->value()); - $this->assertEquals('ffff', $this->converter->encode(65535)->value()); - $this->assertEquals('7fffffff', $this->converter->encode(2147483647)->value()); - } - - public function testHexadecimalDecode() - { - $this->converter->config('map', RadixConverter::MAP_HEXADECIMAL); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(10, $this->converter->decode('a')->value()); - $this->assertEquals(16, $this->converter->decode('10')->value()); - $this->assertEquals(255, $this->converter->decode('ff')->value()); - $this->assertEquals(65535, $this->converter->decode('ffff')->value()); - $this->assertEquals(2147483647, $this->converter->decode('7fffffff')->value()); - } - - public function testAlphanumeric36Encode() - { - $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_36); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('a', $this->converter->encode(10)->value()); - $this->assertEquals('10', $this->converter->encode(36)->value()); - $this->assertEquals('73', $this->converter->encode(255)->value()); - $this->assertEquals('1ekf', $this->converter->encode(65535)->value()); - $this->assertEquals('zik0zj', $this->converter->encode(2147483647)->value()); - } - - public function testAlphanumeric36Decode() - { - $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_36); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(10, $this->converter->decode('a')->value()); - $this->assertEquals(36, $this->converter->decode('10')->value()); - $this->assertEquals(255, $this->converter->decode('73')->value()); - $this->assertEquals(65535, $this->converter->decode('1ekf')->value()); - $this->assertEquals(2147483647, $this->converter->decode('zik0zj')->value()); - } - - public function testAlphanumeric62Encode() - { - $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_62); - $this->assertEquals('0', $this->converter->encode(0)->value()); - $this->assertEquals('1', $this->converter->encode(1)->value()); - $this->assertEquals('a', $this->converter->encode(10)->value()); - $this->assertEquals('10', $this->converter->encode(62)->value()); - $this->assertEquals('47', $this->converter->encode(255)->value()); - $this->assertEquals('h31', $this->converter->encode(65535)->value()); - $this->assertEquals('2lkCB1', $this->converter->encode(2147483647)->value()); - } - - public function testAlphanumeric62Decode() - { - $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_62); - $this->assertEquals(0, $this->converter->decode('0')->value()); - $this->assertEquals(1, $this->converter->decode('1')->value()); - $this->assertEquals(10, $this->converter->decode('a')->value()); - $this->assertEquals(62, $this->converter->decode('10')->value()); - $this->assertEquals(255, $this->converter->decode('47')->value()); - $this->assertEquals(65535, $this->converter->decode('h31')->value()); - $this->assertEquals(2147483647, $this->converter->decode('2lkCB1')->value()); - } - - public function testEncodeByCustomizedMap() - { - $this->converter->config('map', 'OKNU'); - $this->assertEquals('O', $this->converter->encode(0)->value()); - $this->assertEquals('KO', $this->converter->encode(4)->value()); - $this->assertEquals('KOO', $this->converter->encode(16)->value()); - $this->assertEquals('UNKO', $this->converter->encode(228)->value()); - } - - public function testDecodeByCustomizedMap() - { - $this->converter->config('map', 'OKNU'); - $this->assertEquals(0, $this->converter->decode('O')->value()); - $this->assertEquals(4, $this->converter->decode('KO')->value()); - $this->assertEquals(16, $this->converter->decode('KOO')->value()); - $this->assertEquals(228, $this->converter->decode('UNKO')->value()); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testRaiseExceptionWhenCustomizedMapContainsSameCharacter() - { - $this->converter->config('map', '00123456789'); - } - - public function testEncodeByCallStaticWithMap() - { - $this->assertEquals('10', RadixConverter::encode(2, RadixConverter::MAP_BINARY)); - $this->assertEquals('10', RadixConverter::encode(8, RadixConverter::MAP_OCTAL)); - $this->assertEquals('10', RadixConverter::encode(10, RadixConverter::MAP_DECIMAL)); - $this->assertEquals('10', RadixConverter::encode(16, RadixConverter::MAP_HEXADECIMAL)); - $this->assertEquals('10', RadixConverter::encode(36, RadixConverter::MAP_ALPHANUMERIC_36)); - $this->assertEquals('10', RadixConverter::encode(62, RadixConverter::MAP_ALPHANUMERIC_62)); - $this->assertEquals('UNKO', RadixConverter::encode(228, 'OKNU')); - } - - public function testDecodeByCallStaticWithMap() - { - $this->assertEquals(2, RadixConverter::decode('10', RadixConverter::MAP_BINARY)); - $this->assertEquals(8, RadixConverter::decode('10', RadixConverter::MAP_OCTAL)); - $this->assertEquals(10, RadixConverter::decode('10', RadixConverter::MAP_DECIMAL)); - $this->assertEquals(16, RadixConverter::decode('10', RadixConverter::MAP_HEXADECIMAL)); - $this->assertEquals(36, RadixConverter::decode('10', RadixConverter::MAP_ALPHANUMERIC_36)); - $this->assertEquals(62, RadixConverter::decode('10', RadixConverter::MAP_ALPHANUMERIC_62)); - $this->assertEquals(228, RadixConverter::decode('UNKO', 'OKNU')); - } - - /** - * @requires extension bcmath - */ - public function testEncodeByCallStaticWithMapAndAcceptLong() - { - $this->assertEquals('2lkCB2', RadixConverter::encode('2147483648', RadixConverter::MAP_ALPHANUMERIC_62, true)); - $this->assertEquals('aZl8N0y58M8', RadixConverter::encode('9223372036854775808', RadixConverter::MAP_ALPHANUMERIC_62, true)); - } - - /** - * @requires extension bcmath - */ - public function testDecodeByCallStaticWithMapAndAcceptLong() - { - $this->assertEquals('2147483648', RadixConverter::decode('2lkCB2', RadixConverter::MAP_ALPHANUMERIC_62, true)); - $this->assertEquals('9223372036854775808', RadixConverter::decode('aZl8N0y58M8', RadixConverter::MAP_ALPHANUMERIC_62, true)); - } - -} diff --git a/Tests/bootstrap.php b/Tests/bootstrap.php deleted file mode 100644 index 79e8a02..0000000 --- a/Tests/bootstrap.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license The MIT License (MIT) - */ -spl_autoload_register(function($className) { - $namespace = 'Volcanus\RadixConverter'; - if (0 === strpos(ltrim($className, DIRECTORY_SEPARATOR), $namespace)) { - $path = realpath(__DIR__ . '/..') . substr( - str_replace('\\', DIRECTORY_SEPARATOR, $className), - strlen($namespace) - ).'.php'; - if (file_exists($path)) { - return include $path; - } - } - return false; -}, true, true); From 6f8127ffe32571bc57ae9c5011a9ff3884b3913c Mon Sep 17 00:00:00 2001 From: k-holy Date: Wed, 19 Mar 2014 11:12:12 +0900 Subject: [PATCH 2/2] =?UTF-8?q?src,=20tests=E3=81=AB=E3=83=87=E3=82=A3?= =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=83=AA=E3=82=92=E5=88=86=E9=9B=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coveralls.yml | 2 +- composer.json | 8 +- phpunit.xml | 11 +- .../RadixConverter/RadixConverter.php | 0 testrunner.yml | 5 +- .../RadixConveter/Test/RadixConverterTest.php | 339 ++++++++++++++++++ tests/bootstrap.php | 11 + 7 files changed, 361 insertions(+), 15 deletions(-) rename RadixConverter.php => src/Volcanus/RadixConverter/RadixConverter.php (100%) create mode 100644 tests/Volcanus/RadixConveter/Test/RadixConverterTest.php create mode 100644 tests/bootstrap.php diff --git a/.coveralls.yml b/.coveralls.yml index e2ec3db..177d006 100644 --- a/.coveralls.yml +++ b/.coveralls.yml @@ -1,4 +1,4 @@ -src_dir: . +src_dir: ./src coverage_clover: build/logs/clover.xml json_path: build/logs/coveralls-upload.json exclude_no_stmt: true diff --git a/composer.json b/composer.json index 85c4340..e205b52 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "volcanus/radix-converter", "homepage": "https://github.com/k-holy/volcanus-radix-converter", "type": "library", - "version": "0.1.2", + "version": "0.1.3", "license": "MIT", "authors": [ { @@ -11,12 +11,10 @@ } ], "autoload": { - "psr-0": { "Volcanus\\RadixConverter": "." } + "psr-0": { "Volcanus\\RadixConverter": "src/" } }, - "target-dir": "Volcanus/RadixConverter", "require": { - "php": ">=5.3", - "ext-bcmath" : "*" + "php": ">=5.3.3" }, "require-dev": { "satooshi/php-coveralls": "dev-master" diff --git a/phpunit.xml b/phpunit.xml index 0d6c923..cf8f44f 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -2,7 +2,7 @@ - ./Tests/ + ./tests/Volcanus/RadixConverter/Test/ - . + ./src - ./Tests + ./tests ./vendor - - - diff --git a/RadixConverter.php b/src/Volcanus/RadixConverter/RadixConverter.php similarity index 100% rename from RadixConverter.php rename to src/Volcanus/RadixConverter/RadixConverter.php diff --git a/testrunner.yml b/testrunner.yml index d194037..48f83f0 100644 --- a/testrunner.yml +++ b/testrunner.yml @@ -3,11 +3,12 @@ general: test_targets: recursive: true resources: - - Tests + - tests autotest: enabled: false watch_dirs: - - Tests + - src + - tests notify: true phpunit: diff --git a/tests/Volcanus/RadixConveter/Test/RadixConverterTest.php b/tests/Volcanus/RadixConveter/Test/RadixConverterTest.php new file mode 100644 index 0000000..7b862a1 --- /dev/null +++ b/tests/Volcanus/RadixConveter/Test/RadixConverterTest.php @@ -0,0 +1,339 @@ + + * @license The MIT License (MIT) + */ +namespace Volcanus\RadixConverter\Test; + +use Volcanus\RadixConverter\RadixConverter; + +/** + * RadixConverterTest + * + * @author k.holy74@gmail.com + */ +class RadixConverterTest extends \PHPUnit_Framework_TestCase +{ + + public function setUp() + { + $this->converter = new RadixConverter(); + } + + public function testValueForEncode() + { + $this->converter->value(99); + $this->assertEquals(99, $this->converter->value()); + } + + public function testValueForDecode() + { + $this->converter->value('ABC'); + $this->assertEquals('ABC', $this->converter->value()); + } + + public function testEncode() + { + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('a', $this->converter->encode(10)->value()); + $this->assertEquals('10', $this->converter->encode(62)->value()); + $this->assertEquals('47', $this->converter->encode(255)->value()); + $this->assertEquals('h31', $this->converter->encode(65535)->value()); + $this->assertEquals('2lkCB1', $this->converter->encode(2147483647)->value()); + } + + public function testDecode() + { + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(10, $this->converter->decode('a')->value()); + $this->assertEquals(62, $this->converter->decode('10')->value()); + $this->assertEquals(255, $this->converter->decode('47')->value()); + $this->assertEquals(65535, $this->converter->decode('h31')->value()); + $this->assertEquals(2147483647, $this->converter->decode('2lkCB1')->value()); + } + + public function testEncodeByCallStatic() + { + $this->assertEquals('0', RadixConverter::encode(0)); + $this->assertEquals('1', RadixConverter::encode(1)); + $this->assertEquals('a', RadixConverter::encode(10)); + $this->assertEquals('10', RadixConverter::encode(62)); + $this->assertEquals('47', RadixConverter::encode(255)); + $this->assertEquals('h31', RadixConverter::encode(65535)); + $this->assertEquals('2lkCB1', RadixConverter::encode(2147483647)); + } + + public function testDecodeByCallStatic() + { + $this->assertEquals(0, RadixConverter::decode('0')); + $this->assertEquals(1, RadixConverter::decode('1')); + $this->assertEquals(10, RadixConverter::decode('a')); + $this->assertEquals(62, RadixConverter::decode('10')); + $this->assertEquals(255, RadixConverter::decode('47')); + $this->assertEquals(65535, RadixConverter::decode('h31')); + $this->assertEquals(2147483647, RadixConverter::decode('2lkCB1')); + } + + /** + * @requires extension bcmath + */ + public function testEncodeAcceptLongOn32Bit() + { + $this->converter->config('acceptLong', true); + $this->assertEquals('2lkCB2', $this->converter->encode('2147483648')->value()); + } + + /** + * @requires extension bcmath + */ + public function testDecodeAcceptLongOn32Bit() + { + $this->converter->config('acceptLong', true); + $this->assertEquals('2147483648', $this->converter->decode('2lkCB2')->value()); + } + + /** + * @requires extension bcmath + */ + public function testEncodeAcceptLongOn64Bit() + { + $this->converter->config('acceptLong', true); + $this->assertEquals('aZl8N0y58M8', $this->converter->encode('9223372036854775808')->value()); + } + + /** + * @requires extension bcmath + */ + public function testDecodeAcceptLongOn64Bit() + { + $this->converter->config('acceptLong', true); + $this->assertEquals('9223372036854775808', $this->converter->decode('aZl8N0y58M8')->value()); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testRaiseExceptionWhenNotAcceptLong() + { + $this->converter->config('acceptLong', false)->encode(strval(PHP_INT_MAX + 1)); + } + + public function testToString() + { + $this->assertEquals('10', (string)$this->converter->encode(62)); + $this->assertEquals('62', (string)$this->converter->decode('10')); + } + + public function testBinaryEncode() + { + $this->converter->config('map', RadixConverter::MAP_BINARY); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('10', $this->converter->encode(2)->value()); + $this->assertEquals('1010', $this->converter->encode(10)->value()); + $this->assertEquals('11111111', $this->converter->encode(255)->value()); + $this->assertEquals('1111111111111111', $this->converter->encode(65535)->value()); + $this->assertEquals('1111111111111111111111111111111', $this->converter->encode(2147483647)->value()); + } + + public function testBinaryDecode() + { + $this->converter->config('map', RadixConverter::MAP_BINARY); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(2, $this->converter->decode('10')->value()); + $this->assertEquals(10, $this->converter->decode('1010')->value()); + $this->assertEquals(255, $this->converter->decode('11111111')->value()); + $this->assertEquals(65535, $this->converter->decode('1111111111111111')->value()); + $this->assertEquals(2147483647, $this->converter->decode('1111111111111111111111111111111')->value()); + } + + public function testOctalEncode() + { + $this->converter->config('map', RadixConverter::MAP_OCTAL); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('10', $this->converter->encode(8)->value()); + $this->assertEquals('12', $this->converter->encode(10)->value()); + $this->assertEquals('377', $this->converter->encode(255)->value()); + $this->assertEquals('177777', $this->converter->encode(65535)->value()); + $this->assertEquals('17777777777', $this->converter->encode(2147483647)->value()); + } + + public function testOctalDecode() + { + $this->converter->config('map', RadixConverter::MAP_OCTAL); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(8, $this->converter->decode('10')->value()); + $this->assertEquals(10, $this->converter->decode('12')->value()); + $this->assertEquals(255, $this->converter->decode('377')->value()); + $this->assertEquals(65535, $this->converter->decode('177777')->value()); + $this->assertEquals(2147483647, $this->converter->decode('17777777777')->value()); + } + + public function testDecimalEncode() + { + $this->converter->config('map', RadixConverter::MAP_DECIMAL); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('10', $this->converter->encode(10)->value()); + $this->assertEquals('255', $this->converter->encode(255)->value()); + $this->assertEquals('65535', $this->converter->encode(65535)->value()); + $this->assertEquals('2147483647', $this->converter->encode(2147483647)->value()); + } + + public function testDecimalDecode() + { + $this->converter->config('map', RadixConverter::MAP_DECIMAL); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(10, $this->converter->decode('10')->value()); + $this->assertEquals(255, $this->converter->decode('255')->value()); + $this->assertEquals(65535, $this->converter->decode('65535')->value()); + $this->assertEquals(2147483647, $this->converter->decode('2147483647')->value()); + } + + public function testHexadecimalEncode() + { + $this->converter->config('map', RadixConverter::MAP_HEXADECIMAL); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('a', $this->converter->encode(10)->value()); + $this->assertEquals('10', $this->converter->encode(16)->value()); + $this->assertEquals('ff', $this->converter->encode(255)->value()); + $this->assertEquals('ffff', $this->converter->encode(65535)->value()); + $this->assertEquals('7fffffff', $this->converter->encode(2147483647)->value()); + } + + public function testHexadecimalDecode() + { + $this->converter->config('map', RadixConverter::MAP_HEXADECIMAL); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(10, $this->converter->decode('a')->value()); + $this->assertEquals(16, $this->converter->decode('10')->value()); + $this->assertEquals(255, $this->converter->decode('ff')->value()); + $this->assertEquals(65535, $this->converter->decode('ffff')->value()); + $this->assertEquals(2147483647, $this->converter->decode('7fffffff')->value()); + } + + public function testAlphanumeric36Encode() + { + $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_36); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('a', $this->converter->encode(10)->value()); + $this->assertEquals('10', $this->converter->encode(36)->value()); + $this->assertEquals('73', $this->converter->encode(255)->value()); + $this->assertEquals('1ekf', $this->converter->encode(65535)->value()); + $this->assertEquals('zik0zj', $this->converter->encode(2147483647)->value()); + } + + public function testAlphanumeric36Decode() + { + $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_36); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(10, $this->converter->decode('a')->value()); + $this->assertEquals(36, $this->converter->decode('10')->value()); + $this->assertEquals(255, $this->converter->decode('73')->value()); + $this->assertEquals(65535, $this->converter->decode('1ekf')->value()); + $this->assertEquals(2147483647, $this->converter->decode('zik0zj')->value()); + } + + public function testAlphanumeric62Encode() + { + $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_62); + $this->assertEquals('0', $this->converter->encode(0)->value()); + $this->assertEquals('1', $this->converter->encode(1)->value()); + $this->assertEquals('a', $this->converter->encode(10)->value()); + $this->assertEquals('10', $this->converter->encode(62)->value()); + $this->assertEquals('47', $this->converter->encode(255)->value()); + $this->assertEquals('h31', $this->converter->encode(65535)->value()); + $this->assertEquals('2lkCB1', $this->converter->encode(2147483647)->value()); + } + + public function testAlphanumeric62Decode() + { + $this->converter->config('map', RadixConverter::MAP_ALPHANUMERIC_62); + $this->assertEquals(0, $this->converter->decode('0')->value()); + $this->assertEquals(1, $this->converter->decode('1')->value()); + $this->assertEquals(10, $this->converter->decode('a')->value()); + $this->assertEquals(62, $this->converter->decode('10')->value()); + $this->assertEquals(255, $this->converter->decode('47')->value()); + $this->assertEquals(65535, $this->converter->decode('h31')->value()); + $this->assertEquals(2147483647, $this->converter->decode('2lkCB1')->value()); + } + + public function testEncodeByCustomizedMap() + { + $this->converter->config('map', 'OKNU'); + $this->assertEquals('O', $this->converter->encode(0)->value()); + $this->assertEquals('KO', $this->converter->encode(4)->value()); + $this->assertEquals('KOO', $this->converter->encode(16)->value()); + $this->assertEquals('UNKO', $this->converter->encode(228)->value()); + } + + public function testDecodeByCustomizedMap() + { + $this->converter->config('map', 'OKNU'); + $this->assertEquals(0, $this->converter->decode('O')->value()); + $this->assertEquals(4, $this->converter->decode('KO')->value()); + $this->assertEquals(16, $this->converter->decode('KOO')->value()); + $this->assertEquals(228, $this->converter->decode('UNKO')->value()); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testRaiseExceptionWhenCustomizedMapContainsSameCharacter() + { + $this->converter->config('map', '00123456789'); + } + + public function testEncodeByCallStaticWithMap() + { + $this->assertEquals('10', RadixConverter::encode(2, RadixConverter::MAP_BINARY)); + $this->assertEquals('10', RadixConverter::encode(8, RadixConverter::MAP_OCTAL)); + $this->assertEquals('10', RadixConverter::encode(10, RadixConverter::MAP_DECIMAL)); + $this->assertEquals('10', RadixConverter::encode(16, RadixConverter::MAP_HEXADECIMAL)); + $this->assertEquals('10', RadixConverter::encode(36, RadixConverter::MAP_ALPHANUMERIC_36)); + $this->assertEquals('10', RadixConverter::encode(62, RadixConverter::MAP_ALPHANUMERIC_62)); + $this->assertEquals('UNKO', RadixConverter::encode(228, 'OKNU')); + } + + public function testDecodeByCallStaticWithMap() + { + $this->assertEquals(2, RadixConverter::decode('10', RadixConverter::MAP_BINARY)); + $this->assertEquals(8, RadixConverter::decode('10', RadixConverter::MAP_OCTAL)); + $this->assertEquals(10, RadixConverter::decode('10', RadixConverter::MAP_DECIMAL)); + $this->assertEquals(16, RadixConverter::decode('10', RadixConverter::MAP_HEXADECIMAL)); + $this->assertEquals(36, RadixConverter::decode('10', RadixConverter::MAP_ALPHANUMERIC_36)); + $this->assertEquals(62, RadixConverter::decode('10', RadixConverter::MAP_ALPHANUMERIC_62)); + $this->assertEquals(228, RadixConverter::decode('UNKO', 'OKNU')); + } + + /** + * @requires extension bcmath + */ + public function testEncodeByCallStaticWithMapAndAcceptLong() + { + $this->assertEquals('2lkCB2', RadixConverter::encode('2147483648', RadixConverter::MAP_ALPHANUMERIC_62, true)); + $this->assertEquals('aZl8N0y58M8', RadixConverter::encode('9223372036854775808', RadixConverter::MAP_ALPHANUMERIC_62, true)); + } + + /** + * @requires extension bcmath + */ + public function testDecodeByCallStaticWithMapAndAcceptLong() + { + $this->assertEquals('2147483648', RadixConverter::decode('2lkCB2', RadixConverter::MAP_ALPHANUMERIC_62, true)); + $this->assertEquals('9223372036854775808', RadixConverter::decode('aZl8N0y58M8', RadixConverter::MAP_ALPHANUMERIC_62, true)); + } + +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..fc3aa4d --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,11 @@ + + * @license The MIT License (MIT) + */ +error_reporting(E_ALL | E_STRICT | E_DEPRECATED); + +$loader = include realpath(__DIR__ . '/../vendor/autoload.php'); +$loader->add('Volcanus\RadixConverter\Test', __DIR__);