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); } }