def more_complex_graph():
    g = NodeTypeEdgeFeatureGraphCRF(2, [2, 3], [3, 4], np.array([[1, 2], [2, 3]]))
    node_f = [np.array([[1, 1, 1], [2, 2, 2]]), np.array([[0.11, 0.12, 0.13, 0.14], [0.21, 0.22, 0.23, 0.24], [0.31, 0.32, 0.33, 0.34]])]
    edges = [np.array([[0, 1]]), np.array([[0, 0]]), None, None]
    edge_f = [np.array([[0.111]]), np.array([[0.221, 0.222]]), None, None]
    x = (node_f, edges, edge_f)
    y = np.hstack([np.array([0, 0]), (2 + np.array([0, 0, 0]))])
    return (g, x, y)
def more_complex_graph():
    g = NodeTypeEdgeFeatureGraphCRF(2, [2, 3], [3, 4], np.array([[1, 2], [2, 3]]))
    node_f = [np.array([[1, 1, 1], [2, 2, 2]]), np.array([[0.11, 0.12, 0.13, 0.14], [0.21, 0.22, 0.23, 0.24], [0.31, 0.32, 0.33, 0.34]])]
    edges = [np.array([[0, 1]]), np.array([[0, 0]]), None, None]
    edge_f = [np.array([[0.111]]), np.array([[0.221, 0.222]]), None, None]
    x = (node_f, edges, edge_f)
    y = np.hstack([np.array([0, 0]), (2 + np.array([0, 0, 0]))])
    return (g, x, y)