range_block_test.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import 'package:test/test.dart';
  2. import 'package:xterm/xterm.dart';
  3. void main() {
  4. group('BufferLineRange', () {
  5. test('toSegments() works', () {
  6. final range = BufferRangeBlock(CellOffset(10, 10), CellOffset(12, 12));
  7. final segments = range.toSegments().toList();
  8. expect(segments, hasLength(3));
  9. expect(segments[0].start, equals(10));
  10. expect(segments[0].end, equals(12));
  11. expect(segments[1].start, equals(10));
  12. expect(segments[1].end, equals(12));
  13. expect(segments[2].start, equals(10));
  14. expect(segments[2].end, 12);
  15. });
  16. test('toSegments() works with reversed range', () {
  17. final range = BufferRangeBlock(CellOffset(12, 12), CellOffset(10, 10));
  18. final segments = range.toSegments().toList();
  19. expect(segments, hasLength(3));
  20. expect(segments[0].start, equals(10));
  21. expect(segments[0].end, equals(12));
  22. expect(segments[1].start, equals(10));
  23. expect(segments[1].end, equals(12));
  24. expect(segments[2].start, equals(10));
  25. expect(segments[2].end, 12);
  26. });
  27. test('contains() works', () {
  28. final range = BufferRangeBlock(CellOffset(10, 10), CellOffset(10, 12));
  29. expect(range.contains(CellOffset(10, 10)), isTrue);
  30. expect(range.contains(CellOffset(10, 11)), isTrue);
  31. expect(range.contains(CellOffset(10, 12)), isTrue);
  32. expect(range.contains(CellOffset(10, 9)), isFalse);
  33. expect(range.contains(CellOffset(10, 13)), isFalse);
  34. });
  35. test('contains() works with reversed range', () {
  36. final range = BufferRangeBlock(CellOffset(10, 12), CellOffset(10, 10));
  37. expect(range.contains(CellOffset(10, 10)), isTrue);
  38. expect(range.contains(CellOffset(10, 11)), isTrue);
  39. expect(range.contains(CellOffset(10, 12)), isTrue);
  40. expect(range.contains(CellOffset(10, 9)), isFalse);
  41. expect(range.contains(CellOffset(10, 13)), isFalse);
  42. });
  43. test('merge() works', () {
  44. final range1 = BufferRangeBlock(CellOffset(10, 10), CellOffset(10, 12));
  45. final range2 = BufferRangeBlock(CellOffset(10, 13), CellOffset(10, 15));
  46. final merged = range1.merge(range2);
  47. expect(merged.begin, equals(CellOffset(10, 10)));
  48. expect(merged.end, equals(CellOffset(10, 15)));
  49. });
  50. test('merge() works with reversed range', () {
  51. final range1 = BufferRangeBlock(CellOffset(10, 12), CellOffset(10, 10));
  52. final range2 = BufferRangeBlock(CellOffset(10, 13), CellOffset(10, 15));
  53. final merged = range1.merge(range2);
  54. expect(merged.begin, equals(CellOffset(10, 10)));
  55. expect(merged.end, equals(CellOffset(10, 15)));
  56. });
  57. test('extend() works', () {
  58. final range = BufferRangeBlock(CellOffset(10, 10), CellOffset(10, 12));
  59. final extended = range.extend(CellOffset(10, 13));
  60. expect(extended.begin, equals(CellOffset(10, 10)));
  61. expect(extended.end, equals(CellOffset(10, 13)));
  62. });
  63. test('extend() works with reversed range', () {
  64. final range = BufferRangeBlock(CellOffset(10, 12), CellOffset(10, 10));
  65. final extended = range.extend(CellOffset(10, 13));
  66. expect(extended.begin, equals(CellOffset(10, 10)));
  67. expect(extended.end, equals(CellOffset(10, 13)));
  68. });
  69. test('extend() works with reversed range and reversed extend', () {
  70. final range = BufferRangeBlock(CellOffset(10, 12), CellOffset(10, 10));
  71. final extended = range.extend(CellOffset(10, 9));
  72. expect(extended.begin, equals(CellOffset(10, 9)));
  73. expect(extended.end, equals(CellOffset(10, 12)));
  74. });
  75. });
  76. }