Source code for sknano.testing._funcs
# -*- coding: utf-8 -*-
"""
========================================================================
Helper functions for testing (:mod:`sknano.testing._funcs`)
========================================================================
.. currentmodule:: sknano.testing._funcs
"""
from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals
import importlib
from sknano.core.atoms import StructureAtom as Atom, StructureAtoms as Atoms
from sknano.core.refdata import element_symbols as periodic_table_of_elements
from sknano.generators import STRUCTURE_GENERATORS
__all__ = ['generate_atoms', 'generate_structure']
[docs]def generate_atoms(*args, elements=None, generator_class=None, **kwargs):
"""Helper function to generate sequence of atoms for testing purposes."""
atoms = None
if elements is not None:
if isinstance(elements, str) and elements == 'periodic_table':
elements = periodic_table_of_elements
if isinstance(elements, list):
atoms = Atoms()
for e in elements:
atoms.append(Atom(e))
elif generator_class is not None and \
generator_class in STRUCTURE_GENERATORS:
try:
atoms = generate_structure(*args, generator_class=generator_class,
**kwargs).atoms
except AttributeError as e:
print(e)
return atoms
[docs]def generate_structure(*args, generator_class=None, **kwargs):
"""Helper function to generate :class:`~sknano.io.StructureData` \
for running unit tests.
"""
try:
generator = getattr(importlib.import_module('sknano.generators'),
generator_class)
return generator(*args, **kwargs)
except ImportError as e:
print(e)