"""test_moose_attribs.py: 

"""

__author__ = "Dilawar Singh"
__copyright__ = "Copyright 2017-, Dilawar Singh"
__version__ = "1.0.0"
__maintainer__ = "Dilawar Singh"
__email__ = "dilawars@ncbs.res.in"
__status__ = "Development"

import sys
import os
import moose

print(moose.about())

attribs = [
    "AdExIF",
    "AdThreshIF",
    "Adaptor",
    "Annotator",
    "Arith",
    "BufPool",
    "CaConc",
    "CaConcBase",
    "ChanBase",
    "ChemCompt",
    "Cinfo",
    "Clock",
    "Compartment",
    "CompartmentBase",
    "ConcChan",
    "CplxEnzBase",
    "CubeMesh",
    "CylMesh",
    "DiagonalMsg",
    "DifBuffer",
    "DifBufferBase",
    "DifShell",
    "DifShellBase",
    "DiffAmp",
    "Dsolve",
    "EndoMesh",
    "Enz",
    "EnzBase",
    "ExIF",
    "Finfo",
    "Function",
    "GapJunction",
    "GraupnerBrunel2012CaPlasticitySynHandler",
    "Group",
    "Gsolve",
    "HHChannel",
    "HHChannel2D",
    "HHChannelBase",
    "HHGate",
    "HHGate2D",
    "HSolve",
    "IntFire",
    "IntFireBase",
    "Interpol",
    "Interpol2D",
    "IzhIF",
    "IzhikevichNrn",
    "Ksolve",
    "LIF",
    "Leakage",
    "MMPump",
    "MMenz",
    "MarkovChannel",
    "MarkovOdeSolver",
    "MarkovRateTable",
    "MarkovSolver",
    "MarkovSolverBase",
    "MeshEntry",
    "MgBlock",
    "Msg",
    "Mstring",
    "NMDAChan",
    "Nernst",
    "NeuroMesh",
    "Neuron",
    "Neutral",
    "OneToAllMsg",
    "OneToOneDataIndexMsg",
    "OneToOneMsg",
    "PIDController",
    "Pool",
    "PoolBase",
    "PostMaster",
    "PsdMesh",
    "PulseGen",
    "PyRun",
    "QIF",
    "RC",
    "RandSpike",
    "Reac",
    "ReacBase",
    "SBML",
    "STDPSynHandler",
    "STDPSynapse",
    "SeqSynHandler",
    "Shell",
    "SimpleSynHandler",
    "SingleMsg",
    "SparseMsg",
    "Species",
    "SpikeGen",
    "SpikeStats",
    "Spine",
    "SpineMesh",
    "Stats",
    "SteadyState",
    "StimulusTable",
    "Stoich",
    "Streamer",
    "SymCompartment",
    "SynChan",
    "SynHandlerBase",
    "Synapse",
    "Table",
    "Table2",
    "TableBase",
    "TimeTable",
    "VClamp",
    "about",
    "Variable",
    "VectorTable",
    "ZombieBufPool",
    "ZombieCaConc",
    "ZombieCompartment",
    "ZombieEnz",
    "ZombieFunction",
    "ZombieHHChannel",
    "ZombieMMenz",
    "ZombiePool",
    "ZombieReac",
    "_moose",
    "chemMerge",
    "chemUtil",
    "connect",
    "copy",
    "delete",
    "doc",
    "element",
    "exists",
    "fixXreacs",
    "genesis",
    "getCwe",
    "getField",
    "getFieldDict",
    "getFieldNames",
    "le",
    "listmsg",
    "loadModelInternal",
    "melement",
    "mergeChemModel",
    "addChemSolver",
    "deleteChemSolver",
    "readNML2",
    "readSBML",
    "writeKkit",
    "writeNML2",
    "writeSBML",
    "moose_constants",
    "move",
    "print_utils",
    "pwe",
    "ce",
    "pydoc",
    "rand",
    "reinit",
    "seed",
    "setClock",
    "setCwe",
    "showfield",
    "showmsg",
    "start",
    "stop",
    "useClock",
    "utils",
    "vec",
    "version",
    "wildcardFind",
]


def test_attribs():
    global attribs
    for at in attribs:
        assert hasattr(moose, at), "%s not found" % at


if __name__ == "__main__":
    test_attribs()
