BitBufferTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Class BitBufferTest
  4. *
  5. * @filesource BitBufferTest.php
  6. * @created 08.02.2016
  7. * @package chillerlan\QRCodeTest\Helpers
  8. * @author Smiley <smiley@chillerlan.net>
  9. * @copyright 2015 Smiley
  10. * @license MIT
  11. */
  12. namespace chillerlan\QRCodeTest\Helpers;
  13. use chillerlan\QRCode\Helpers\BitBuffer;
  14. use chillerlan\QRCode\Common\Mode;
  15. use PHPUnit\Framework\TestCase;
  16. /**
  17. * BitBuffer coverage test
  18. */
  19. final class BitBufferTest extends TestCase{
  20. protected BitBuffer $bitBuffer;
  21. protected function setUp():void{
  22. $this->bitBuffer = new BitBuffer;
  23. }
  24. public function bitProvider():array{
  25. return [
  26. 'number' => [Mode::DATA_NUMBER, 16],
  27. 'alphanum' => [Mode::DATA_ALPHANUM, 32],
  28. 'byte' => [Mode::DATA_BYTE, 64],
  29. 'kanji' => [Mode::DATA_KANJI, 128],
  30. ];
  31. }
  32. /**
  33. * @dataProvider bitProvider
  34. */
  35. public function testPut(int $data, int $value):void{
  36. $this->bitBuffer->put($data, 4);
  37. $this::assertSame($value, $this->bitBuffer->getBuffer()[0]);
  38. $this::assertSame(4, $this->bitBuffer->getLength());
  39. }
  40. public function testClear():void{
  41. $this->bitBuffer->clear();
  42. $this::assertSame([], $this->bitBuffer->getBuffer());
  43. $this::assertSame(0, $this->bitBuffer->getLength());
  44. }
  45. }