         g[0, 2] = 4
         g[1, 2] = 1
         g[2, 1] = -3
+        XCTAssert(g.directed == true)
         XCTAssert(g.unEvenVertices(directed: g.directed) == nil)
         XCTAssert(g.semiEulerian == false)
         XCTAssert(g.eulerian == false)
         g[1, 0] = 2
+        XCTAssert(g.directed == true)
         XCTAssert(g.unEvenVertices(directed: g.directed)! == 2)
         XCTAssert(g.semiEulerian == true)
         XCTAssert(g.eulerian == false)
         g[2, 0] = 10
+        XCTAssert(g.directed == false)
         XCTAssert(g.unEvenVertices(directed: g.directed)! == 0)
         XCTAssert(g.semiEulerian == true)
         XCTAssert(g.eulerian == true)

		
		// 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)")
		
