# Path: phydmslib/constants.py
# N_NT = len(INDEX_TO_NT)
# 
# N_CODON = len(CODON_TO_INDEX)


import random
import unittest
import numpy
import scipy.linalg
import scipy.optimize
import phydmslib.models
from phydmslib.constants import N_NT, N_CODON
"""Tests `phydmslib.models.YNGKP_M0` class.

Written by Jesse Bloom.
Edited by Sarah Hilton

Uses `sympy` to make sure attributes and derivatives of attributes
are correct for `YNGKP_M0` implemented in `phydmslib.models`.
"""




class testYNGKP_M0(unittest.TestCase):
    """Test YNGKP M0."""

    def test_YNGKP_M0(self):
        """Initialize `YNGKP_M0`, test values, update, test again."""
        # create alignment
        numpy.random.seed(1)
        random.seed(1)

# Path: phydmslib/constants.py
# N_NT = len(INDEX_TO_NT)
# 
# N_CODON = len(CODON_TO_INDEX)


# Path: tests/test_YNGKPM0.py
import random
import unittest
import numpy
import scipy.linalg
import scipy.optimize
import phydmslib.models
from phydmslib.constants import N_NT, N_CODON

"""Tests `phydmslib.models.YNGKP_M0` class.

Written by Jesse Bloom.
Edited by Sarah Hilton

Uses `sympy` to make sure attributes and derivatives of attributes
are correct for `YNGKP_M0` implemented in `phydmslib.models`.
"""




class testYNGKP_M0(unittest.TestCase):
    """Test YNGKP M0."""

    def test_YNGKP_M0(self):
        """Initialize `YNGKP_M0`, test values, update, test again."""
        # create alignment
        numpy.random.seed(1)
        random.seed(1)

        self.e_pa = numpy.random.uniform(0.12, 1.0, size=(3, N_NT))