PHP-NumberBaseCrypt/tests/test.class.NumberBaseCrypt.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);
}
*/
}