# Path: Echobase/Common/errors.py
# def check_dims(arr, nd):
# def check_type(obj, typ):
# def check_function(obj):
# def check_path(path):
# def make_path(path):
# def check_path_overwrite(path):
# def check_has_key(dictionary, key_ref):


import numpy as np
from ...Common import errors
"""
Tools to lesion the network

Created by: Ankit Khambhati

Change Log
----------
2016/11/11 - Implemented lesion
"""

from __future__ import division



def node_lesion(adj, node_list):
    """
    Function for removing full nodes from the network

    Parameters
    ----------
        adj: ndarray, shape (N, N)
            Undirected, symmetric adjacency matrix with N nodes

        node_list: list
            List of node indices to simultaneously remove from the network
    """

    # Standard param checks
    errors.check_type(adj, np.ndarray)

# Path: Echobase/Common/errors.py
# def check_dims(arr, nd):
# def check_type(obj, typ):
# def check_function(obj):
# def check_path(path):
# def make_path(path):
# def check_path_overwrite(path):
# def check_has_key(dictionary, key_ref):


# Path: Echobase/Network/Transforms/lesion.py
import numpy as np
from ...Common import errors

"""
Tools to lesion the network

Created by: Ankit Khambhati

Change Log
----------
2016/11/11 - Implemented lesion
"""

from __future__ import division



def node_lesion(adj, node_list):
    """
    Function for removing full nodes from the network

    Parameters
    ----------
        adj: ndarray, shape (N, N)
            Undirected, symmetric adjacency matrix with N nodes

        node_list: list
            List of node indices to simultaneously remove from the network
    """

    # Standard param checks
    errors.check_type(adj, np.ndarray)

    errors.check_dims(adj, 2)