Source code for wholecell.tests.utils.test_data

"""Test the data utility."""

import unittest

import pytest

from wholecell.utils import data

# Silence Sphinx autodoc warning
unittest.TestCase.__module__ = "unittest"


[docs] class Test_data(unittest.TestCase): def test_dissoc_and_dissoc_strict(self): source = {i: i * 10 for i in range(5)} d1 = data.dissoc(source, [1, 3]) self.assertEqual(d1, {i: i * 10 for i in [0, 2, 4]}) d2 = data.dissoc_strict(source, [1, 3]) self.assertEqual(d2, {i: i * 10 for i in [0, 2, 4]}) d1 = data.dissoc(source, (100, 200)) self.assertEqual(d1, source) self.assertIsNot(d1, source) with pytest.raises(KeyError): data.dissoc_strict(source, (100, 200)) def test_select_keys(self): source = {"x{}".format(i): i * 10 for i in range(5)} d1 = data.select_keys(source, ["x1", "x4"]) self.assertEqual({"x1": 10, "x4": 40}, d1) # Expect absent keys to raise KeyError. with pytest.raises(KeyError): data.select_keys(source, ("x2", "100")) # Test added keys. d2 = data.select_keys(source, ("x1", "x3", "x4"), x=-1, y=-2, x3=0) self.assertEqual({"x1": 10, "x3": 0, "x4": 40, "x": -1, "y": -2}, d2)
if __name__ == "__main__": unittest.main()