rubytree 0.9.5pre6 → 0.9.5pre7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64,6 +64,11 @@ module TestTree
64
64
 
65
65
  end
66
66
 
67
+ def test_subclassed_detached_copy_is_same_class
68
+ root = MyNode.new("Root")
69
+ assert_equal(MyNode, root.detached_copy.class)
70
+ end
71
+
67
72
  end
68
73
  end
69
74
 
data/test/test_tree.rb CHANGED
@@ -1018,6 +1018,9 @@ module TestTree
1018
1018
  end
1019
1019
 
1020
1020
  assert_equal(2, @child4.node_depth, "Child 4 should have depth 2")
1021
+
1022
+ @root << @child5 << @child3
1023
+ assert_equal(3, @child4.node_depth, "Child 4 should have depth 3 after Child 5 inserted above")
1021
1024
  end
1022
1025
 
1023
1026
  # Test the level method. Since this is an alias of node_depth, we just test for equivalence
@@ -1657,6 +1660,76 @@ module TestTree
1657
1660
  assert_nil(root1["2"]["4"]) # This is on the old tree
1658
1661
 
1659
1662
  end
1663
+
1664
+ # Test the path_as_string method.
1665
+ def test_path_as_string
1666
+ j = Tree::TreeNode.new("j")
1667
+ f = Tree::TreeNode.new("f")
1668
+ k = Tree::TreeNode.new("k")
1669
+ a = Tree::TreeNode.new("a")
1670
+ d = Tree::TreeNode.new("d")
1671
+ h = Tree::TreeNode.new("h")
1672
+ z = Tree::TreeNode.new("z")
1673
+ p = Tree::TreeNode.new("p")
1674
+ t = Tree::TreeNode.new("t")
1675
+ e = Tree::TreeNode.new("e")
1676
+
1677
+ # Create the following Tree
1678
+ # j <-- level 0 (Root)
1679
+ # / \
1680
+ # f k <-- level 1
1681
+ # / \ \
1682
+ # a h z <-- level 2
1683
+ # \ / \
1684
+ # d p t <-- level 3
1685
+ # /
1686
+ # e <-- level 4
1687
+ j << f << a << d << e
1688
+ f << h
1689
+ h << p
1690
+ h << t
1691
+ j << k << z
1692
+
1693
+ assert_equal(t.path_as_string(), 'j=>f=>h=>t') # Check the default sep.
1694
+
1695
+ assert_equal(t.path_as_string(' => '), 'j => f => h => t')
1696
+ assert_equal(z.path_as_string(' => '), 'j => k => z')
1697
+ assert_equal(a.path_as_string(' => '), 'j => f => a')
1698
+ end
1699
+
1700
+ # Test the path_as_array method.
1701
+ def test_path_as_array
1702
+ j = Tree::TreeNode.new("j")
1703
+ f = Tree::TreeNode.new("f")
1704
+ k = Tree::TreeNode.new("k")
1705
+ a = Tree::TreeNode.new("a")
1706
+ d = Tree::TreeNode.new("d")
1707
+ h = Tree::TreeNode.new("h")
1708
+ z = Tree::TreeNode.new("z")
1709
+ p = Tree::TreeNode.new("p")
1710
+ t = Tree::TreeNode.new("t")
1711
+ e = Tree::TreeNode.new("e")
1712
+
1713
+ # Create the following Tree
1714
+ # j <-- level 0 (Root)
1715
+ # / \
1716
+ # f k <-- level 1
1717
+ # / \ \
1718
+ # a h z <-- level 2
1719
+ # \ / \
1720
+ # d p t <-- level 3
1721
+ # /
1722
+ # e <-- level 4
1723
+ j << f << a << d << e
1724
+ f << h
1725
+ h << p
1726
+ h << t
1727
+ j << k << z
1728
+
1729
+ assert_equal(e.path_as_array, ['j', 'f', 'a', 'd', 'e'])
1730
+ assert_equal(p.path_as_array, ['j', 'f' , 'h', 'p'])
1731
+ assert_equal(k.path_as_array, ['j', 'k'])
1732
+ end
1660
1733
  end
1661
1734
  end
1662
1735
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubytree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5pre6
4
+ version: 0.9.5pre7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anupam Sengupta
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.1'
19
+ version: '0.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.1'
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +139,7 @@ files:
139
139
  - TAGS
140
140
  - TODO.org
141
141
  - examples/example_basic.rb
142
+ - gem_graph.png
142
143
  - lib/rubytree.rb
143
144
  - lib/tree.rb
144
145
  - lib/tree/binarytree.rb
@@ -147,9 +148,12 @@ files:
147
148
  - lib/tree/utils/hash_converter.rb
148
149
  - lib/tree/utils/json_converter.rb
149
150
  - lib/tree/utils/metrics_methods.rb
151
+ - lib/tree/utils/path_methods.rb
150
152
  - lib/tree/utils/tree_merge_handler.rb
151
153
  - lib/tree/utils/utils.rb
152
154
  - lib/tree/version.rb
155
+ - rubytree.gemspec
156
+ - setup.rb
153
157
  - test/run_test.rb
154
158
  - test/test_binarytree.rb
155
159
  - test/test_rubytree_require.rb
@@ -186,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
190
  version: 1.3.1
187
191
  requirements: []
188
192
  rubyforge_project:
189
- rubygems_version: 2.4.3
193
+ rubygems_version: 2.4.6
190
194
  signing_key:
191
195
  specification_version: 4
192
196
  summary: A generic tree data structure.