@@ -71,7 +71,44 @@ class SwiftGraphTests: XCTestCase {
7171 XCTAssertEqual ( g. vertexCount, 2 , " 2 total vertices " )
7272 XCTAssertEqual ( g. edgeCount, 1 , " 1 total edges " )
7373 }
74-
74+
75+ func testIndegreeAndOutdegree( ) {
76+ var g = UnweightedGraph < String > ( )
77+ let atlantaIndex = g. addVertex ( " Atlanta " )
78+ let nyIndex = g. addVertex ( " New York " )
79+ let miamiIndex = g. addVertex ( " Miami " )
80+ let sfIndex = g. addVertex ( " San Francisco " )
81+ let arezzoIndex = g. addVertex ( " Arezzo " )
82+ g. addEdge ( from: " Atlanta " , to: " New York " , directed: true )
83+ let nyAtlantaEdge = UnweightedEdge ( u: nyIndex, v: atlantaIndex, directed: true )
84+ g. addEdge ( nyAtlantaEdge, directed: true )
85+ g. addEdge ( from: " Miami " , to: " Atlanta " , directed: true )
86+ g. addEdge ( from: " New York " , to: " Miami " , directed: false )
87+ g. addEdge ( from: " Atlanta " , to: " Miami " , directed: true )
88+ g. addEdge ( from: " San Francisco " , to: " Miami " , directed: false )
89+ XCTAssertEqual ( g. indegreeOfVertex ( at: atlantaIndex) , 2 , " 2 edges end at Atlanta " )
90+ XCTAssertEqual ( g. indegreeOfVertex ( at: miamiIndex) , 3 , " 3 edges end at Miami " )
91+ XCTAssertEqual ( g. indegreeOfVertex ( at: sfIndex) , 1 , " 1 edge ends at San Francisco " )
92+ XCTAssertEqual ( g. indegreeOfVertex ( at: nyIndex) , 2 , " 2 edges end at New York " )
93+ XCTAssertEqual ( g. indegreeOfVertex ( at: arezzoIndex) , 0 , " 0 edges end at Arezzo " )
94+ XCTAssertEqual ( g. outdegreeOfVertex ( at: atlantaIndex) , 2 , " 2 edges start from Atlanta " )
95+ XCTAssertEqual ( g. outdegreeOfVertex ( at: miamiIndex) , 3 , " 3 edges start from Miami " )
96+ XCTAssertEqual ( g. outdegreeOfVertex ( at: sfIndex) , 1 , " 1 edge starts from San Francisco " )
97+ XCTAssertEqual ( g. outdegreeOfVertex ( at: nyIndex) , 2 , " 2 edges start from New York " )
98+ XCTAssertEqual ( g. outdegreeOfVertex ( at: arezzoIndex) , 0 , " 0 edges start from Arezzo " )
99+ g. removeEdge ( nyAtlantaEdge)
100+ XCTAssertEqual ( g. indegreeOfVertex ( at: atlantaIndex) , 1 , " 1 edgee ends at Atlanta " )
101+ XCTAssertEqual ( g. indegreeOfVertex ( at: miamiIndex) , 3 , " 3 edges end at Miami " )
102+ XCTAssertEqual ( g. indegreeOfVertex ( at: sfIndex) , 1 , " 1 edge ends at San Francisco " )
103+ XCTAssertEqual ( g. indegreeOfVertex ( at: nyIndex) , 2 , " 2 edges end at New York " )
104+ XCTAssertEqual ( g. indegreeOfVertex ( at: arezzoIndex) , 0 , " 0 edges end at Arezzo " )
105+ XCTAssertEqual ( g. outdegreeOfVertex ( at: atlantaIndex) , 2 , " 2 edges start from Atlanta " )
106+ XCTAssertEqual ( g. outdegreeOfVertex ( at: miamiIndex) , 3 , " 3 edges start from Miami " )
107+ XCTAssertEqual ( g. outdegreeOfVertex ( at: sfIndex) , 1 , " 1 edge starts from San Francisco " )
108+ XCTAssertEqual ( g. outdegreeOfVertex ( at: nyIndex) , 1 , " 1 edge starts from New York " )
109+ XCTAssertEqual ( g. outdegreeOfVertex ( at: arezzoIndex) , 0 , " 0 edges start from Arezzo " )
110+ }
111+
75112 func testSubscript( ) {
76113 let g : UnweightedGraph < String > = UnweightedGraph < String > ( )
77114 _ = g. addVertex ( " Atlanta " )
0 commit comments