BitBufferTest.php 1.1 KB

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