Return given point reflected around planes in N dimensions.
There must be the same number of planes as dimensions, but the value of each
  plane may be None to indicate no reflection.

def pts_reflect(pts=[], plane=[None, None]):
    '''Return given point reflected around planes in N dimensions.
There must be the same number of planes as dimensions, but the value of each
  plane may be None to indicate no reflection.
    '''
    assert isinstance(pts, list) and len(pts) > 0
    l_pt_prev = None
    for pt in pts:
        assert isinstance(pt, tuple)
        l_pt = len(pt)
        assert l_pt > 1
        for i in pt:
            assert isinstance(i, float)
        if l_pt_prev is not None:
            assert l_pt == l_pt_prev
        l_pt_prev = l_pt
    assert isinstance(plane, list)
    l_pl = len(plane)
    assert l_pl == l_pt
    for i in plane:
        assert isinstance(i, float) or i is None

    return [pt_reflect(pt, plane) for pt in pts]