def part_count(verts, faces):
    """
    :param verts: list of x, y, z coords of verticies
    :param faces: list of indcies of verts in each face
    :return: count of verticices,  edges and faces
    """
    edge_count = 0.5 * len([v for face in faces for v in face])
    vert_count = len(verts)
    face_count = len(faces)
    # check Euler characteristic
    assert vert_count + face_count - edge_count == 2
    return vert_count, edge_count, face_count