ommx.testing
============

.. py:module:: ommx.testing


Submodules
----------

.. toctree::
   :maxdepth: 1

   /autoapi/ommx/testing/placement/index


Classes
-------

.. autoapisummary::

   ommx.testing.DataType
   ommx.testing.SingleFeasibleLPGenerator


Package Contents
----------------

.. py:class:: DataType(*args, **kwds)



   Create a collection of name/value pairs.

   Example enumeration:

   >>> class Color(Enum):
   ...     RED = 1
   ...     BLUE = 2
   ...     GREEN = 3

   Access them by:

   - attribute access:

     >>> Color.RED
     <Color.RED: 1>

   - value lookup:

     >>> Color(1)
     <Color.RED: 1>

   - name lookup:

     >>> Color['RED']
     <Color.RED: 1>

   Enumerations can be iterated over, and know how many members they have:

   >>> len(Color)
   3

   >>> list(Color)
   [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]

   Methods can be added to enumerations, and members can have their own
   attributes -- see the documentation for details.


   .. py:attribute:: FLOAT


   .. py:attribute:: INT


.. py:class:: SingleFeasibleLPGenerator(n: int, data_type: DataType)

   .. py:method:: get_v1_instance() -> ommx.Instance

      Get an instance of a linear programming problem with a unique solution.

      Examples:
          >>> from ommx.testing import DataType, SingleFeasibleLPGenerator
          >>> generator = SingleFeasibleLPGenerator(3, DataType.INT)
          >>> ommx_instance = generator.get_v1_instance()



   .. py:method:: get_v1_state() -> ommx.State

      Get the solution state of the generated instance.

      Examples:
          >>> from ommx.testing import DataType, SingleFeasibleLPGenerator
          >>> generator = SingleFeasibleLPGenerator(3, DataType.INT)
          >>> ommx_state = generator.get_v1_state()



   .. py:attribute:: FLOAT_LOWER_BOUND
      :value: -100.0



   .. py:attribute:: FLOAT_UPPER_BOUND
      :value: 100.0



   .. py:attribute:: INT_LOWER_BOUND
      :value: -100



   .. py:attribute:: INT_UPPER_BOUND
      :value: 100



