New upstream release.
Debian Janitor
1 year, 7 months ago
0 | # 0.0.x / Unreleased | |
1 | ||
2 | # 0.0.16 / 2021-09-21 | |
3 | ||
4 | ## Fixed | |
5 | ||
6 | - Fixed bug when reference to prev node was not set correctly аfter using `shift`. | |
7 | ||
8 | [Compare v0.0.15...v0.0.16](https://github.com/spectator/linked-list/compare/v0.0.15...v0.0.16) | |
9 | ||
10 | # 0.0.15 / 2020-05-26 | |
11 | ||
12 | ## Fixed | |
13 | ||
14 | - Fixed bug when deleting the last node of the list. The @tail value was not updated if the @head value was updated. | |
15 | ||
16 | [Compare v0.0.14...v0.0.15](https://github.com/spectator/linked-list/compare/v0.0.14...v0.0.15) | |
17 | ||
0 | 18 | # 0.0.14 / 2020-04-17 |
1 | 19 | |
2 | 20 | ## Fixed |
0 | ruby-linked-list (0.0.16-1) UNRELEASED; urgency=low | |
1 | ||
2 | * New upstream release. | |
3 | ||
4 | -- Debian Janitor <janitor@jelmer.uk> Sun, 16 Oct 2022 19:18:35 -0000 | |
5 | ||
0 | 6 | ruby-linked-list (0.0.14-2) unstable; urgency=medium |
1 | 7 | |
2 | 8 | * Source-only upload for migration to testing |
285 | 285 | private |
286 | 286 | |
287 | 287 | def __unlink_node(node) |
288 | @head = node.next if node.prev.nil? | |
289 | @tail = node.prev if node.next.nil? | |
290 | ||
288 | 291 | if node.prev.nil? |
289 | 292 | node.next.prev = nil if node.next |
290 | @head = node.next | |
291 | 293 | elsif node.next.nil? |
292 | 294 | node.prev.next = nil if node.prev |
293 | @tail = node.prev | |
294 | 295 | else |
295 | 296 | node.prev.next, node.next.prev = node.next, node.prev |
296 | 297 | end |
297 | 298 | @length -= 1 |
298 | 299 | end |
299 | ||
300 | 300 | |
301 | 301 | def __to_matcher(val = nil, &block) |
302 | 302 | raise ArgumentError, 'either value or block should be passed' if val && block_given? |
307 | 307 | def __shift |
308 | 308 | head = @head |
309 | 309 | @head = @head.next |
310 | head.next = nil | |
310 | @head.prev = nil if @head | |
311 | 311 | head |
312 | 312 | end |
313 | 313 |
17 | 17 | spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) |
18 | 18 | spec.require_paths = ['lib'] |
19 | 19 | |
20 | spec.add_development_dependency 'bundler', '>= 1.3', '<= 2.0' | |
20 | spec.add_development_dependency 'bundler', '>= 2.0', '< 3.0' | |
21 | 21 | spec.add_development_dependency 'coveralls', '~> 0' |
22 | 22 | spec.add_development_dependency 'm', '~> 1.5', '>= 1.5.0' |
23 | 23 | spec.add_development_dependency 'minitest', '>= 5.0', '<= 6.0' |
509 | 509 | |
510 | 510 | it 'deletes value from head' do |
511 | 511 | list.delete(node_1) |
512 | assert_equal ['bar', 'baz'], list.to_a | |
513 | assert_equal 'bar', list.first | |
512 | assert_equal [node_2.data, node_3.data], list.to_a | |
513 | assert_equal node_2.data, list.first | |
514 | assert_equal node_3.data, list.last | |
514 | 515 | end |
515 | 516 | |
516 | 517 | it 'deletes value from middle' do |
517 | 518 | list.delete(node_2) |
518 | assert_equal ['foo', 'baz'], list.to_a | |
519 | assert_equal [node_1.data, node_3.data], list.to_a | |
520 | assert_equal node_1.data, list.first | |
521 | assert_equal node_3.data, list.last | |
519 | 522 | end |
520 | 523 | |
521 | 524 | |
522 | 525 | it 'deletes value from tail' do |
523 | 526 | list.delete(node_3) |
524 | assert_equal ['foo', 'bar'], list.to_a | |
525 | assert_equal 'bar', list.last | |
527 | assert_equal [node_1.data, node_2.data], list.to_a | |
528 | assert_equal node_1.data, list.first | |
529 | assert_equal node_2.data, list.last | |
530 | end | |
531 | end | |
532 | ||
533 | describe 'delete edge cases' do | |
534 | it 'resets original list state when deleting the last node of the list' do | |
535 | assert_nil list.first | |
536 | assert_nil list.last | |
537 | ||
538 | list.push(node_1) | |
539 | assert_equal node_1.data, list.first | |
540 | assert_equal node_1.data, list.last | |
541 | ||
542 | list.delete(node_1) | |
543 | assert_nil list.first | |
544 | assert_nil list.last | |
526 | 545 | end |
527 | 546 | end |
528 | 547 | end |
618 | 637 | assert_nil list.first |
619 | 638 | end |
620 | 639 | |
640 | it 'sets reference to the prev node' do | |
641 | list.push(node_1) | |
642 | list.push(node_2) | |
643 | assert_nil node_1.prev | |
644 | assert_equal node_2.prev, node_1 | |
645 | ||
646 | list.shift | |
647 | assert_nil node_2.prev | |
648 | end | |
649 | ||
621 | 650 | it 'reduces list length by 1' do |
622 | 651 | list.push(node_1) |
623 | 652 | list.shift |