Sha256: fbffb3a2648fe0c8f9d6b51652eaaadf772060918229b96a7888ead642bf0f0d
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
# -*- coding: utf-8 -*- require File.join(File.dirname(__FILE__), "..", "..", "spec_helper") describe "Tree Node Visitors" do before do ta = TreeNode.new( "a", nil ) LeafNode.new("1", ta ) LeafNode.new("2", ta ) tb = TreeNode.new( "b", ta ) LeafNode.new( "3", tb ) @tree = ta end it CallbackTreeNodeVisitor2 do visitor = CallbackTreeNodeVisitor2.new visitor.on_enter_node{ |tree_node, new_parent_node| # puts "**** #{tree_node}" TreeNode.new("n" + tree_node.content, new_parent_node) } visitor.on_visit_leaf{ |leaf_node, new_parent_node| # puts "**** #{leaf_node}" LeafNode.new( "n" + leaf_node.content, new_parent_node ) } @tree.accept( visitor ) new_root = visitor.root expect(new_root.content).to be == "n" + @tree.content accumulator = [] visitor = BlockTreeNodeVisitor.new { |node| accumulator << node.content} new_root.accept( visitor ) expect(accumulator.length).to be == 5 expect(accumulator).to be == %w{ na n1 n2 nb n3 } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tree.rb-0.3.13 | spec/tree_rb/visitors/callback_tree_node_visitor2_spec.rb |