Source code for varseq_test

"""Tests the :py:class:`varseq.VarSeq` procedures."""
import pytest
import sys
sys.path.append('..')

import numpy as np
import varseq as vs

[docs]@pytest.mark.parametrize("N", [np.random.randint(5,20) for i in range(500)]) def test_align_to(N): """Tests the correctness of :py:func:`varseq.VarSeq.align_to`. Generates random variable sequences (of length ``N``) and tests :py:func:`VarSeq.align_to` against a naive implementation of :py:func:`VarSeq.greedy_sort`. """ A = vs.VarSeq.random(N=N) B = vs.VarSeq.random(N=N) Ap1 = A.greedy_sort(B.layer_var) Ap2 = A.align_to(B.layer_var) assert (np.array_equal(Ap1.layer_var,Ap2.layer_var) and \ np.array_equal(Ap1.n, Ap2.n)), \ f"Instance:\n{A}\nvs.\n{B}"