BitBufferTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * @filesource BitBufferTest.php
  4. * @created 08.02.2016
  5. * @author Smiley <smiley@chillerlan.net>
  6. * @copyright 2015 Smiley
  7. * @license MIT
  8. */
  9. namespace chillerlan\QRCodeTest;
  10. use chillerlan\QRCode\BitBuffer;
  11. use chillerlan\QRCode\Data\QRDataInterface;
  12. use PHPUnit\Framework\TestCase;
  13. class BitBufferTest extends TestCase{
  14. /**
  15. * @var \chillerlan\QRCode\BitBuffer
  16. */
  17. protected $bitBuffer;
  18. protected function setUp(){
  19. $this->bitBuffer = new BitBuffer;
  20. }
  21. public function bitProvider(){
  22. return [
  23. [QRDataInterface::MODE_NUMBER, 16],
  24. [QRDataInterface::MODE_ALPHANUM, 32],
  25. [QRDataInterface::MODE_BYTE, 64],
  26. [QRDataInterface::MODE_KANJI, 128],
  27. ];
  28. }
  29. /**
  30. * @dataProvider bitProvider
  31. */
  32. public function testPut($data, $value){
  33. $this->bitBuffer->put($data, 4);
  34. $this->assertEquals($value, $this->bitBuffer->buffer[0]);
  35. $this->assertEquals(4, $this->bitBuffer->length);
  36. }
  37. public function testClear(){
  38. $this->bitBuffer->clear();
  39. $this->assertEquals([], $this->bitBuffer->buffer);
  40. $this->assertEquals(0, $this->bitBuffer->length);
  41. }
  42. }