From 9889678c314dcbd54d3e245d527228fd54048014 Mon Sep 17 00:00:00 2001 From: fartem Date: Thu, 23 Jan 2025 13:35:06 +0300 Subject: [PATCH] 2025-01-23 v. 8.2.5.1: updated TreeNode initialization for tests --- leetcode-ruby.gemspec | 2 +- ...t_102_binary_tree_level_order_traversal.rb | 14 ++--- ...inary_tree_zigzag_level_order_traversal.rb | 14 ++--- ...ree_from_preorder_and_inorder_traversal.rb | 19 ++++--- ...ee_from_inorder_and_postorder_traversal.rb | 19 ++++--- ...07_binary_tree_level_order_traversal_ii.rb | 14 ++--- ...nvert_sorted_list_to_binary_search_tree.rb | 14 +---- test/medium/test_113_path_sum_ii.rb | 34 +++--------- ..._114_flatten_binary_tree_to_linked_list.rb | 44 ++++----------- .../test_95_unique_binary_search_trees_ii.rb | 54 ++++++------------- .../test_98_validate_binary_search_tree.rb | 16 ++---- .../test_99_recover_binary_search_tree.rb | 40 +++----------- 12 files changed, 81 insertions(+), 203 deletions(-) diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index f52d9e95..7ca2b0fc 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '8.2.5' + s.version = '8.2.5.1' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/test/medium/test_102_binary_tree_level_order_traversal.rb b/test/medium/test_102_binary_tree_level_order_traversal.rb index 858192a8..1a121076 100644 --- a/test/medium/test_102_binary_tree_level_order_traversal.rb +++ b/test/medium/test_102_binary_tree_level_order_traversal.rb @@ -14,14 +14,8 @@ def test_default_one [15, 7] ], level_order( - ::TreeNode.new( - 3, - ::TreeNode.new(9), - ::TreeNode.new( - 20, - ::TreeNode.new(15), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [3, 9, 20, nil, nil, 15, 7] ) ) ) @@ -33,7 +27,9 @@ def test_default_two [1] ], level_order( - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1] + ) ) ) end diff --git a/test/medium/test_103_binary_tree_zigzag_level_order_traversal.rb b/test/medium/test_103_binary_tree_zigzag_level_order_traversal.rb index 61cbd809..ff40d92d 100644 --- a/test/medium/test_103_binary_tree_zigzag_level_order_traversal.rb +++ b/test/medium/test_103_binary_tree_zigzag_level_order_traversal.rb @@ -14,14 +14,8 @@ def test_default_one [15, 7] ], zigzag_level_order( - ::TreeNode.new( - 3, - ::TreeNode.new(9), - ::TreeNode.new( - 20, - ::TreeNode.new(15), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [3, 9, 20, nil, nil, 15, 7] ) ) ) @@ -33,7 +27,9 @@ def test_default_two [1] ], zigzag_level_order( - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1] + ) ) ) end diff --git a/test/medium/test_105_construct_binary_tree_from_preorder_and_inorder_traversal.rb b/test/medium/test_105_construct_binary_tree_from_preorder_and_inorder_traversal.rb index cf36fc1d..393661d2 100644 --- a/test/medium/test_105_construct_binary_tree_from_preorder_and_inorder_traversal.rb +++ b/test/medium/test_105_construct_binary_tree_from_preorder_and_inorder_traversal.rb @@ -9,14 +9,8 @@ class ConstructBinaryTreeFromPreorderAndInorderTraversalTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 3, - ::TreeNode.new(9), - ::TreeNode.new( - 20, - ::TreeNode.new(15), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [3, 9, 20, nil, nil, 15, 7] ), build_tree( [3, 9, 20, 15, 7], @@ -29,8 +23,13 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new(-1), - build_tree([-1], [-1]) + ::TreeNode.build_tree( + [-1] + ), + build_tree( + [-1], + [-1] + ) ) ) end diff --git a/test/medium/test_106_construct_binary_tree_from_inorder_and_postorder_traversal.rb b/test/medium/test_106_construct_binary_tree_from_inorder_and_postorder_traversal.rb index af7ac756..8bffd8d8 100644 --- a/test/medium/test_106_construct_binary_tree_from_inorder_and_postorder_traversal.rb +++ b/test/medium/test_106_construct_binary_tree_from_inorder_and_postorder_traversal.rb @@ -9,14 +9,8 @@ class ConstructBinaryTreeFromInorderAndPostorderTraversalTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 3, - ::TreeNode.new(9), - ::TreeNode.new( - 20, - ::TreeNode.new(15), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [3, 9, 20, nil, nil, 15, 7] ), build_tree106( [9, 3, 15, 20, 7], @@ -29,8 +23,13 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new(-1), - build_tree106([-1], [-1]) + ::TreeNode.build_tree( + [-1] + ), + build_tree106( + [-1], + [-1] + ) ) ) end diff --git a/test/medium/test_107_binary_tree_level_order_traversal_ii.rb b/test/medium/test_107_binary_tree_level_order_traversal_ii.rb index 2df88199..c6fa531b 100644 --- a/test/medium/test_107_binary_tree_level_order_traversal_ii.rb +++ b/test/medium/test_107_binary_tree_level_order_traversal_ii.rb @@ -14,14 +14,8 @@ def test_default_one [3] ], level_order_bottom( - ::TreeNode.new( - 3, - ::TreeNode.new(9), - ::TreeNode.new( - 20, - ::TreeNode.new(15), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [3, 9, 20, nil, nil, 15, 7] ) ) ) @@ -33,7 +27,9 @@ def test_default_two [1] ], level_order_bottom( - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1] + ) ) ) end diff --git a/test/medium/test_109_convert_sorted_list_to_binary_search_tree.rb b/test/medium/test_109_convert_sorted_list_to_binary_search_tree.rb index 95097804..99faf715 100644 --- a/test/medium/test_109_convert_sorted_list_to_binary_search_tree.rb +++ b/test/medium/test_109_convert_sorted_list_to_binary_search_tree.rb @@ -10,18 +10,8 @@ class ConvertSortedListToBinarySearchTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 0, - ::TreeNode.new( - -3, - ::TreeNode.new(-10), - nil - ), - ::TreeNode.new( - 9, - ::TreeNode.new(5), - nil - ) + ::TreeNode.build_tree( + [0, -3, 9, -10, nil, 5] ), sorted_list_to_bst( ::ListNode.from_array( diff --git a/test/medium/test_113_path_sum_ii.rb b/test/medium/test_113_path_sum_ii.rb index 2b8f3097..20f295c2 100644 --- a/test/medium/test_113_path_sum_ii.rb +++ b/test/medium/test_113_path_sum_ii.rb @@ -13,26 +13,8 @@ def test_default_one [5, 8, 4, 5] ], path_sum( - ::TreeNode.new( - 5, - ::TreeNode.new( - 4, - ::TreeNode.new( - 11, - ::TreeNode.new(7), - ::TreeNode.new(2) - ), - nil - ), - ::TreeNode.new( - 8, - ::TreeNode.new(13), - ::TreeNode.new( - 4, - ::TreeNode.new(5), - ::TreeNode.new(1) - ) - ) + ::TreeNode.build_tree( + [5, 4, 8, 11, nil, 13, 4, 7, 2, nil, nil, 5, 1] ), 22 ) @@ -43,10 +25,8 @@ def test_default_two assert_equal( [], path_sum( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3] ), 5 ) @@ -57,10 +37,8 @@ def test_default_three assert_empty( [], path_sum( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - nil + ::TreeNode.build_tree( + [1, 2] ), 0 ) diff --git a/test/medium/test_114_flatten_binary_tree_to_linked_list.rb b/test/medium/test_114_flatten_binary_tree_to_linked_list.rb index e24602ab..a796a865 100644 --- a/test/medium/test_114_flatten_binary_tree_to_linked_list.rb +++ b/test/medium/test_114_flatten_binary_tree_to_linked_list.rb @@ -7,43 +7,15 @@ class FlattenBinaryTreeToLinkedListTest < ::Minitest::Test def test_default_one - input = ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(3), - ::TreeNode.new(4) - ), - ::TreeNode.new( - 5, - ::TreeNode.new(6), - nil - ) + input = ::TreeNode.build_tree( + [1, 2, 5, 3, 4, nil, 6] ) flatten(input) assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new( - 3, - nil, - ::TreeNode.new( - 4, - nil, - ::TreeNode.new( - 5, - nil, - ::TreeNode.new(6) - ) - ) - ) - ) + ::TreeNode.build_tree( + [1, nil, 2, nil, 3, nil, 4, nil, 5, nil, 6] ), input ) @@ -58,12 +30,16 @@ def test_default_two end def test_default_three - input = ::TreeNode.new(0) + input = ::TreeNode.build_tree( + [0] + ) flatten(input) assert( ::TreeNode.are_equals( - ::TreeNode.new(0), + ::TreeNode.build_tree( + [0] + ), input ) ) diff --git a/test/medium/test_95_unique_binary_search_trees_ii.rb b/test/medium/test_95_unique_binary_search_trees_ii.rb index a4e05af2..73a9c551 100644 --- a/test/medium/test_95_unique_binary_search_trees_ii.rb +++ b/test/medium/test_95_unique_binary_search_trees_ii.rb @@ -8,51 +8,26 @@ class UniqueBinarySearchTreesIITest < ::Minitest::Test def test_default_one input = [ - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(3) - ) + ::TreeNode.build_tree( + [1, nil, 2, nil, 3] ), - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 3, - ::TreeNode.new(2), - nil - ) + ::TreeNode.build_tree( + [1, nil, 3, 2] ), - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [2, 1, 3] ), - ::TreeNode.new( - 3, - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(2) - ), - nil + ::TreeNode.build_tree( + [3, 1, nil, nil, 2] ), - ::TreeNode.new( - 3, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - nil - ), - nil + ::TreeNode.build_tree( + [3, 2, nil, 1] ) ] output = generate_trees(3) assert_equal(input.length, output.length) + (0..input.length).each do |i| assert( ::TreeNode.are_equals( @@ -64,10 +39,15 @@ def test_default_one end def test_default_two - input = [::TreeNode.new(1)] + input = [ + ::TreeNode.build_tree( + [1] + ) + ] output = generate_trees(1) assert_equal(input.length, output.length) + (0..input.length).each do |i| assert( ::TreeNode.are_equals( diff --git a/test/medium/test_98_validate_binary_search_tree.rb b/test/medium/test_98_validate_binary_search_tree.rb index 09db9a61..60f9ae5a 100644 --- a/test/medium/test_98_validate_binary_search_tree.rb +++ b/test/medium/test_98_validate_binary_search_tree.rb @@ -9,10 +9,8 @@ class ValidateBinarySearchTreeTest < ::Minitest::Test def test_default_one assert( is_valid_bst( - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [2, 1, 3] ) ) ) @@ -21,14 +19,8 @@ def test_default_one def test_default_two assert( !is_valid_bst( - ::TreeNode.new( - 5, - ::TreeNode.new(1), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - ::TreeNode.new(6) - ) + ::TreeNode.build_tree( + [5, 1, 4, nil, nil, 3, 6] ) ) ) diff --git a/test/medium/test_99_recover_binary_search_tree.rb b/test/medium/test_99_recover_binary_search_tree.rb index f9fd4d00..af515abe 100644 --- a/test/medium/test_99_recover_binary_search_tree.rb +++ b/test/medium/test_99_recover_binary_search_tree.rb @@ -7,27 +7,15 @@ class RecoverBinarySearchTreeTest < ::Minitest::Test def test_default_one - input = ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - nil, - ::TreeNode.new(2) - ), - nil + input = ::TreeNode.build_tree( + [1, 3, nil, nil, 2] ) recover_tree(input) assert( ::TreeNode.are_equals( - ::TreeNode.new( - 3, - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(2) - ), - nil + ::TreeNode.build_tree( + [3, 1, nil, nil, 2] ), input ) @@ -35,27 +23,15 @@ def test_default_one end def test_default_two - input = ::TreeNode.new( - 3, - ::TreeNode.new(1), - ::TreeNode.new( - 4, - ::TreeNode.new(2), - nil - ) + input = ::TreeNode.build_tree( + [3, 1, 4, nil, nil, 2] ) recover_tree(input) assert( ::TreeNode.are_equals( - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - nil - ) + ::TreeNode.build_tree( + [2, 1, 4, nil, nil, 3] ), input )