def test_problematic_patterns(self):
     self.obj._modifiers = [
         Modifiers.CaseConverter(),
         Modifiers.RegexpReplacer()
     ]
     self.obj._filters = [
         Filters.NumeralFilter(),
         Filters.PunctuationFilter()
     ]
     # patterns which had problems in testing of program
     problem_strings = ['..']
     for ps in problem_strings:
         self.assertEqual(None, self.obj.process(ps))
    def test_happy_run_filters(self):
        test = self.faker.word()
        nf = Filters.NumeralFilter()
        print(type(nf))
        self.assertTrue(isinstance(nf, Filters.IFilter))
        self.obj.add_filters(nf)
        self.obj.add_filters(Filters.PunctuationFilter())

        self.assertTrue(len(self.obj._filters) is 2)

        self.assertEqual(True, self.obj._run_filters(test))
        with self.assertRaises(ExcludedString):
            self.obj._run_filters('5')

        with self.assertRaises(ExcludedString):
            self.obj._run_filters('.')
 def test_happy_process(self):
     self.obj._modifiers = [
         Modifiers.CaseConverter(),
         Modifiers.RegexpReplacer()
     ]
     self.obj._filters = [
         Filters.NumeralFilter(),
         Filters.PunctuationFilter()
     ]
     # should make lowercase and replace contraction
     self.assertEqual('taco', self.obj.process('Taco'))
     self.assertEqual("will not", self.obj.process("WON'T"))
     # with self.assertRaises(ExcludedString):
     self.assertEqual(None, self.obj.process(43))
     # with self.assertRaises(ExcludedString):
     self.assertEqual(None, self.obj.process('.'))
示例#4
0
 def test_happy_path_number(self):
     self.obj = Filters.PunctuationFilter()
     test = 5
     self.assertTrue(self.obj.run(test))
示例#5
0
 def test_happy_path_num_string(self):
     self.obj = Filters.PunctuationFilter()
     test = '5'
     self.assertTrue(self.obj.run(test))
示例#6
0
 def test_happy_path_punctuation(self):
     self.obj = Filters.PunctuationFilter()
     for i in list(string.punctuation):
         with self.assertRaises(ExcludedString):
             self.obj.run(i)
import unittest

from TextProcessingTools.TextTools.Filtration import Filters
from TextProcessingTools.TextTools.Replacement import Modifiers
from TextProcessingTools.StatisticalTools import Counters as C

filters = [
    Filters.UsernameFilter(),
    Filters.PunctuationFilter(),
    Filters.URLFilter(),
    Filters.NumeralFilter()
]

modifiers = [Modifiers.WierdBPrefixConverter(), Modifiers.CaseConverter()]


class SelectedCounterTests(unittest.TestCase):
    def setUp(self):
        self.obj = C.SelectedWordCounter()
        self.obj.add_filters(filters)
        self.obj.add_modifiers(modifiers)

    def test_process_count(self):
        test = "My cat eats food of cat"
        self.obj.set_words_to_count(['my', 'cat', 'eats'])
        expected = {'my': 1, 'cat': 2, 'eats': 1}
        self.obj.process(test)

        # check
        for k in expected.keys():
            self.assertEqual(self.obj.counts[k], expected[k])