 	func hierholzer< G : Graph >(graph: G.Type) {
 		/*
 		
-		0----3----4
-		|    |\  /
-		|    | \/
-		1----2  5
+		0 <- 3 <-- 5
+		|    ^\   ^
+        °    | ° /
+		1 -> 2  4
 		
 		*/
 		

		
		// print(g3)
		let start = Date()
		let hh0 = g0.hierholzer()
		XCTAssert(hh0 != nil && (hh0! == [4, 5, 3, 0, 1, 2, 3, 4] || hh0! == [5, 3, 0, 1, 2, 3, 4, 5]), "\(hh0)") // TODO: Hierholzer also for directed, (semi-)eulerian graphs
		let hh = g1.hierholzer()!
		XCTAssert(hh == [4, 5, 3, 2, 1, 0, 3, 4] || hh == [5, 4, 3, 0, 1, 2, 3, 5], "\(hh)")

        let hh2 = g2.hierholzer()
		XCTAssert(hh2 != nil && (hh2! == [5, 3, 2, 1, 0, 3, 4, 5] || hh2! == [3, 4, 5, 3, 2, 1, 0, 3] || hh2! == [4, 5, 3, 2, 1, 0, 3, 4]), "\(hh2)")

        let hh3 = g3.hierholzer()
		XCTAssert(hh3 != nil && (hh3! == [5, 3, 2, 1, 0, 3, 4]), "\(hh3)")
        

         0 -- 1 -- 2
         
         */
        
        let hh4 = g4.hierholzer()!
        XCTAssert(hh4 == [4, 5, 0, 1, 2, 3, 4, 1] || hh4 == [1, 2, 3, 4, 5, 0, 1, 4], "\(hh4)")
		
