PHP and Javascript implementations of a simple markdown parser
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

CellAddressRangeTests.php 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. declare(strict_types=1);
  3. use PHPUnit\Framework\TestCase;
  4. require_once __DIR__ . '/../../php/markdown.php';
  5. require_once __DIR__ . '/../../php/spreadsheet.php';
  6. final class CellAddressRangeTests extends TestCase {
  7. public function test_iterator() {
  8. $grid = new SpreadsheetGrid(3, 4);
  9. $range = new CellAddressRange(new CellAddress(0, 0), new CellAddress(2, 3));
  10. $visited = [];
  11. $sanity = 100;
  12. foreach ($range->cellsIn($grid) as $address_string => $cell) {
  13. array_push($visited, $address_string);
  14. if ($sanity-- < 0) break;
  15. }
  16. $actual = implode(',', $visited);
  17. $expected = 'A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4';
  18. $this->assertSame($expected, $actual);
  19. }
  20. public function test_iterator_column() {
  21. $grid = new SpreadsheetGrid(3, 4);
  22. $range = new CellAddressRange(new CellAddress(1, -1), new CellAddress(2, -1));
  23. $visited = [];
  24. $sanity = 100;
  25. foreach ($range->cellsIn($grid) as $address_string => $cell) {
  26. array_push($visited, $address_string);
  27. if ($sanity-- < 0) break;
  28. }
  29. $actual = implode(',', $visited);
  30. $expected = 'B1,B2,B3,B4,C1,C2,C3,C4';
  31. $this->assertSame($expected, $actual);
  32. }
  33. public function test_iterator_beyondBounds() {
  34. $grid = new SpreadsheetGrid(3, 4);
  35. $range = new CellAddressRange(new CellAddress(0, 1), new CellAddress(9, 9));
  36. $visited = [];
  37. $sanity = 100;
  38. foreach ($range->cellsIn($grid) as $address_string => $cell) {
  39. array_push($visited, $address_string);
  40. if ($sanity-- < 0) break;
  41. }
  42. $actual = implode(',', $visited);
  43. $expected = 'A2,A3,A4,B2,B3,B4,C2,C3,C4';
  44. $this->assertSame($expected, $actual);
  45. }
  46. public function test_iterator_outOfBounds() {
  47. $grid = new SpreadsheetGrid(3, 4);
  48. $range = new CellAddressRange(new CellAddress(5, 0), new CellAddress(5, 9));
  49. $visited = [];
  50. $sanity = 100;
  51. foreach ($range->cellsIn($grid) as $address_string => $cell) {
  52. array_push($visited, $address_string);
  53. if ($sanity-- < 0) break;
  54. }
  55. $actual = implode(',', $visited);
  56. $expected = '';
  57. $this->assertSame($expected, $actual);
  58. }
  59. }
  60. ?>