7227a6f8e1abdf60b25efe5bc419ca2c8a861ba4
[graph.njae.git] / spec / graph / graph_spec.rb
1 require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
3 module Graph
4 describe Graph do
5 let (:g) { Graph.new }
6 describe "#initialize" do
7 it "creates an empty graph" do
8 g = Graph.new
9 g.edges.should be_empty
10 g.vertices.should be_empty
11 end
12 end # #initialize
13
14 describe "adds attribues" do
15 it "adds then reports arbitrary attributes" do
16 g.score = 15
17 g.score == 15
18 end
19 end # adds attributes
20
21 describe "#<<" do
22 it "adds a set of vertices" do
23 g.vertices.should be_empty
24 v1 = Vertex.new
25 v2 = Vertex.new
26 g << v1 << v2
27 g.should have(2).vertices
28 g.vertices.should include(v1)
29 g.vertices.should include(v2)
30 end
31
32 it "adds a set of edges" do
33 g.edges.should be_empty
34 e1 = Edge.new
35 e2 = Edge.new
36 g << e1 << e2
37 g.should have(2).edges
38 g.edges.should include(e1)
39 g.edges.should include(e2)
40 end
41
42 it "adds a mixed set of vertices and edges" do
43 g.vertices.should be_empty
44 g.edges.should be_empty
45 v1 = Vertex.new
46 v2 = Vertex.new
47 e1 = Edge.new
48 e2 = Edge.new
49 g << v1 << e1 << v2 << e2
50 g.should have(2).vertices
51 g.vertices.should include(v1)
52 g.vertices.should include(v2)
53 g.should have(2).edges
54 g.edges.should include(e1)
55 g.edges.should include(e2)
56 end
57 end # #<<
58
59 describe "connect" do
60 it "adds and records an edge between vertices" do
61 end
62 end # #connect
63
64 end
65 end