Skip to content

Commit

Permalink
testRegisterEncoding
Browse files Browse the repository at this point in the history
  • Loading branch information
danny50610 committed Aug 20, 2023
1 parent 5d4045a commit d3efb63
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/EncodingFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public static function registerEncoding(string $encodingName, Closure $construct
static::initConstructor();

if (array_key_exists($encodingName, self::$encodingConstructors)) {
throw new Exception("{$encodingName} already exists");
throw new InvalidArgumentException("\"{$encodingName}\" already exists");
}

self::$encodingConstructors[$encodingName] = $constructor;
Expand Down
23 changes: 23 additions & 0 deletions tests/EncodingFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Danny50610\BpeTokeniser\Tests;

use Danny50610\BpeTokeniser\Encoding;
use Danny50610\BpeTokeniser\EncodingFactory;
use InvalidArgumentException;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -44,4 +45,26 @@ public function testCreateByModelNameWithNonExist()

EncodingFactory::createByModelName('danny');
}

public function testRegisterEncoding()
{
EncodingFactory::registerEncoding('danny', function () {
$banks = [];
return new Encoding('danny', $banks, '', []);
});

$enc = EncodingFactory::createByEncodingName('danny');
$this->assertSame('danny', $enc->getName());
}

public function testRegisterEncodingAlreadyExists()
{
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('"cl100k_base" already exists');

EncodingFactory::registerEncoding('cl100k_base', function () {
$banks = [];
return new Encoding('cl100k_base', $banks, '', []);
});
}
}

0 comments on commit d3efb63

Please sign in to comment.