e.vertices.should include(v)
e.vertices.should include(v1)
- e.should have(2).connections
+ e.should have(2).connections
end
+ it "connects two vertices by an edge with attributes" do
+ v1 = Vertex.new
+ v1.id = :v1
+ e = v.connect(v1, {:type => :edge_type})
+ e.type.should == :edge_type
+ end
+
it "creates a self-connection" do
e = v.connect v
e.should have(2).connections
end
+ it "creates a self-connection with an edge with attributes" do
+ e = v.connect(v, {:type => :edge_type})
+ e.type.should == :edge_type
+ end
+
end # #connect
describe "#neighbours" do
v3.neighbours.uniq.length.should == 1
end
end # #neighbours
+
+ describe "#to_dot" do
+ it "describes a vertex in dot notation" do
+ v = Vertex.new
+ v.to_dot.should == "#{v.object_id.to_s};"
+ end
+
+ it "describes a vertex in dot notation, using given attributes" do
+ v = Vertex.new
+ v.name = "vertex"
+ v.shape = "house"
+ vdot = v.to_dot :label => :name, :shape => :shape
+ vdot.should == "#{v.object_id.to_s} {label = \"vertex\", shape = \"house\"};"
+ end
+
+ it "describes a vertex using a block" do
+ v = Vertex.new
+ v.field1 = "f1"
+ vdot = v.to_dot {|v| v.field1 + ';'}
+ vdot.should == "#{v.field1};"
+ end
+ end # #to_dot
end
end