Source code for pyanno.test.test_util

# Copyright (c) 2011, Enthought, Ltd.
# Author: Pietro Berkes <pberkes@enthought.com>
# License: Modified BSD license (2-clause)

import unittest
import numpy as np
import pyanno.util as pu
from pyanno.util import MISSING_VALUE as MV

[docs]class TestUtil(unittest.TestCase):
[docs] def test_random_categorical(self): distr = np.array([0.0, 0.3, 0.6, 0.05, 0.05]) nsamples = 10000 samples = pu.random_categorical(distr, nsamples) freq = np.bincount(samples) / float(nsamples) np.testing.assert_almost_equal(freq, distr, 2)
[docs] def test_labels_frequency(self): annotations = np.array( [ [ 1, 2, -2, -2], [-2, -2, 3, 3], [-2, 1, 3, 1], [-2, -2, -2, -2] ] ) nclasses = 5 expected = np.array([0., 3., 1., 3., 0.]) / 7. result = pu.labels_frequency(annotations, nclasses, missing_val=-2) np.testing.assert_equal(result, expected)
[docs] def test_labels_count(self): annotations = np.array( [ [ 1, 2, -2, -2], [-2, -2, 3, 3], [-2, 1, 3, 1], [-2, -2, -2, -2] ] ) nclasses = 5 expected = np.array([0., 3., 1., 3., 0.]) result = pu.labels_count(annotations, nclasses, missing_val=-2) np.testing.assert_equal(result, expected)
[docs] def test_majority_vote(self): annotations = np.array( [ [1, 2, 2, MV], [2, 2, 2, 2], [1, 1, 3, 3], [1, 3, 3, 2], [MV, 2, 3, 1], [MV, MV, MV, 3] ] ) expected = np.array([2, 2, 1, 3, 1, 3]) result = pu.majority_vote(annotations) np.testing.assert_equal(expected, result)
if __name__ == '__main__': unittest.main()

Table Of Contents