160 lines
6.7 KiB
PHP
160 lines
6.7 KiB
PHP
<?php
|
|
|
|
namespace Tests\AppBundle;
|
|
|
|
include_once __DIR__.'/../vendor/autoload.php';
|
|
require_once __DIR__.'/../src/class.NumberBaseCrypt.php';
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class test extends TestCase {
|
|
|
|
// Test setDigits method
|
|
public function testSetDigits() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt();
|
|
$numberBaseCrypt->setDigits([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
$this->assertEquals($numberBaseCrypt->getDigits(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
}
|
|
|
|
// Test setDigitsFromString method
|
|
public function testSetDigitsFromString() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt();
|
|
$numberBaseCrypt->setDigitsFromString('0123456789');
|
|
$this->assertEquals($numberBaseCrypt->getDigits(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
|
}
|
|
|
|
// Test shuffleDigits method
|
|
public function testShuffleDigits() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([1, 2, 3]);
|
|
$numberBaseCrypt->shuffleDigits();
|
|
$this->assertNotEquals([1, 2, 3], $numberBaseCrypt->getDigits());
|
|
}
|
|
|
|
// Test getDigits method
|
|
public function testGetDigits() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([1, 2, 3]);
|
|
$this->assertEquals($numberBaseCrypt->getDigits(), [1, 2, 3]);
|
|
}
|
|
|
|
// Test getDigitsAsString method
|
|
public function testGetDigitsAsString() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([1, 2, 3]);
|
|
$this->assertEquals($numberBaseCrypt->getDigitsAsString(), '123');
|
|
}
|
|
|
|
// Test base10ToBase method
|
|
public function testBase10ToBase() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']);
|
|
$this->assertEquals('21', $numberBaseCrypt->base10ToBase(27));
|
|
}
|
|
|
|
// Test baseToBase10 method
|
|
public function testBaseToBase10() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']);
|
|
$this->assertEquals(12, $numberBaseCrypt->baseToBase10('c'));
|
|
}
|
|
|
|
// Test addLength method
|
|
public function testAddLength() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']);
|
|
$this->assertEquals('3foo', $numberBaseCrypt->addLength('foo'));
|
|
}
|
|
|
|
|
|
// Full circle test 1
|
|
public function testFullCircle1() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$bX = $numberBaseCrypt->base10ToBase(101337);
|
|
$b10 = $numberBaseCrypt->baseToBase10($bX);
|
|
$this->assertEquals(101337, $b10);
|
|
}
|
|
|
|
// Full circle test 2 - shuffled
|
|
public function testFullCircle2() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$numberBaseCrypt->shuffleDigits();
|
|
$bX = $numberBaseCrypt->base10ToBase(101337);
|
|
$b10 = $numberBaseCrypt->baseToBase10($bX);
|
|
$this->assertEquals(101337, $b10);
|
|
}
|
|
|
|
// Full circle test 3 - shuffled between converts (reverse)
|
|
public function testFullCircle3() {
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$bX = $numberBaseCrypt->base10ToBase(101337);
|
|
$numberBaseCrypt->shuffleDigits();
|
|
$b10 = $numberBaseCrypt->baseToBase10($bX);
|
|
$this->assertNotEquals(101337, $b10);
|
|
}
|
|
|
|
// Full circle test 4 - string export/import
|
|
public function testFullCircle4() {
|
|
$numberBaseCrypt1 = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$numberBaseCrypt1->shuffleDigits();
|
|
$numberBaseCrypt2 = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y'
|
|
]);
|
|
|
|
$numberBaseCrypt2->setDigitsFromString($numberBaseCrypt1->getDigitsAsString());
|
|
|
|
$bX = $numberBaseCrypt1->base10ToBase(1013374);
|
|
$b10 = $numberBaseCrypt2->baseToBase10($bX);
|
|
$this->assertEquals(1013374, $b10);
|
|
}
|
|
|
|
/*
|
|
// Full Circle data collection test
|
|
public function testFullCircleDataCollection() {
|
|
$data = [1337,1338,11111,141415,12,5];
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$numberBaseCrypt->shuffleDigits();
|
|
$dataCollection = "";
|
|
foreach ($data as $value) {
|
|
$tmp = $numberBaseCrypt->base10ToBase($value);
|
|
$dataCollection .= $numberBaseCrypt->addLength($tmp);
|
|
}
|
|
$reverse = $numberBaseCrypt->parseBaseDataCollection($dataCollection);
|
|
$this->assertEquals($data, $reverse);
|
|
}
|
|
|
|
// Full Circle data collection test (reverse)
|
|
public function testFullCircleDataCollectionReverse() {
|
|
$data = [1337,1338,11111,141415,12,5];
|
|
$numberBaseCrypt = new \NAE\Crypt\NumberBaseCrypt([
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
|
'a', 'b', 'c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
|
|
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
|
|
]);
|
|
$dataCollection = "";
|
|
foreach ($data as $value) {
|
|
$tmp = $numberBaseCrypt->base10ToBase($value);
|
|
$dataCollection .= $numberBaseCrypt->addLength($tmp);
|
|
}
|
|
$numberBaseCrypt->shuffleDigits();
|
|
$reverse = $numberBaseCrypt->parseBaseDataCollection($dataCollection);
|
|
$this->assertNotEquals($data, $reverse);
|
|
}
|
|
*/
|
|
|
|
} |