# Path: morph_net/testing/op_regularizer_stub.py
# class OpRegularizerStub(generic_regularizers.OpRegularizer):
# class OpRegularizerStubFactory(object):
#   def __init__(self, regularization_vector, alive_vector):
#   def regularization_vector(self):
#   def alive_vector(self):
#   def __init__(self, alive_stub_dict, reg_stub_dict):
#   def _create_stub(self, key):
#   def create_conv2d_regularizer(self, conv_op, manager=None):
# def image_stub():


from morph_net.testing import op_regularizer_stub
from tensorflow.contrib import layers as contrib_layers
import tensorflow.compat.v1 as tf

ALIVE_STUB = {
    'conv1': [False, True, True, False, True, False, True],
    'conv2': [True, False, True, False, False],
    'conv3': [False, False, True, True],
    'conv4': [False, True, False, True, True, False, True,
              False, False, True, False, False],
    'conv5': [False, True, False],
}


REG_STUB = {
    'conv1': [0.1, 0.3, 0.6, 0.2, 0.4, 0.0, 0.8],
    'conv2': [0.15, 0.25, 0.05, 0.55, 0.45],
    'conv3': [0.07, 0.27, 0.17, 0.37],
    'conv4': [
        0.07, 0.27, 0.17, 0.37, 0.28, 0.32, 0.12, 0.22, 0.19, 0.11, 0.02, 0.06
    ],
    'conv5': [0.24, 0.34, 0.29],
}


MOCK_REG_DICT = {
    'Conv2D':
        op_regularizer_stub.OpRegularizerStubFactory(ALIVE_STUB, REG_STUB)
        .create_conv2d_regularizer
}


def image_stub():

# Path: morph_net/testing/op_regularizer_stub.py
# class OpRegularizerStub(generic_regularizers.OpRegularizer):
# class OpRegularizerStubFactory(object):
#   def __init__(self, regularization_vector, alive_vector):
#   def regularization_vector(self):
#   def alive_vector(self):
#   def __init__(self, alive_stub_dict, reg_stub_dict):
#   def _create_stub(self, key):
#   def create_conv2d_regularizer(self, conv_op, manager=None):
# def image_stub():


# Path: morph_net/testing/add_concat_model_stub.py
from morph_net.testing import op_regularizer_stub
from tensorflow.contrib import layers as contrib_layers
import tensorflow.compat.v1 as tf


ALIVE_STUB = {
    'conv1': [False, True, True, False, True, False, True],
    'conv2': [True, False, True, False, False],
    'conv3': [False, False, True, True],
    'conv4': [False, True, False, True, True, False, True,
              False, False, True, False, False],
    'conv5': [False, True, False],
}


REG_STUB = {
    'conv1': [0.1, 0.3, 0.6, 0.2, 0.4, 0.0, 0.8],
    'conv2': [0.15, 0.25, 0.05, 0.55, 0.45],
    'conv3': [0.07, 0.27, 0.17, 0.37],
    'conv4': [
        0.07, 0.27, 0.17, 0.37, 0.28, 0.32, 0.12, 0.22, 0.19, 0.11, 0.02, 0.06
    ],
    'conv5': [0.24, 0.34, 0.29],
}


MOCK_REG_DICT = {
    'Conv2D':
        op_regularizer_stub.OpRegularizerStubFactory(ALIVE_STUB, REG_STUB)
        .create_conv2d_regularizer
}


def image_stub():

  return op_regularizer_stub.image_stub()