HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/nltk/test/unit/test_cfd_mutation.py
import unittest

import pytest

from nltk import ConditionalFreqDist, tokenize


class TestEmptyCondFreq(unittest.TestCase):
    def test_tabulate(self):
        empty = ConditionalFreqDist()
        self.assertEqual(empty.conditions(), [])
        with pytest.raises(ValueError):
            empty.tabulate(conditions="BUG")  # nonexistent keys shouldn't be added
        self.assertEqual(empty.conditions(), [])

    def test_plot(self):
        empty = ConditionalFreqDist()
        self.assertEqual(empty.conditions(), [])
        empty.plot(conditions=["BUG"])  # nonexistent keys shouldn't be added
        self.assertEqual(empty.conditions(), [])

    def test_increment(self):
        # make sure that we can still mutate cfd normally
        text = "cow cat mouse cat tiger"
        cfd = ConditionalFreqDist()

        # create cfd with word length as condition
        for word in tokenize.word_tokenize(text):
            condition = len(word)
            cfd[condition][word] += 1

        self.assertEqual(cfd.conditions(), [3, 5])

        # incrementing previously unseen key is still possible
        cfd[2]["hi"] += 1
        self.assertCountEqual(cfd.conditions(), [3, 5, 2])  # new condition added
        self.assertEqual(
            cfd[2]["hi"], 1
        )  # key's frequency incremented from 0 (unseen) to 1