コード例 #1
0
 def test_data_non_displayroles(self):
     """Other possibly implemented roles return correct types"""
     model = ConcordanceModel()
     model.set_corpus(self.corpus)
     model.set_word("of", DummyState)
     ind00 = model.index(0, 0)
     self.assertIsInstance(model.data(ind00, Qt.ForegroundRole),
                           (QBrush, type(None)))
     self.assertIsInstance(model.data(ind00, Qt.BackgroundRole),
                           (QColor, type(None)))
     self.assertIsInstance(model.data(ind00, Qt.TextAlignmentRole),
                           (Qt.Alignment, type(None)))
コード例 #2
0
 def test_data_non_displayroles(self):
     """Other possibly implemented roles return correct types"""
     model = ConcordanceModel()
     model.set_corpus(self.corpus)
     model.set_word("of")
     ind00 = model.index(0, 0)
     self.assertIsInstance(model.data(ind00, Qt.ForegroundRole),
                           (QBrush, type(None)))
     self.assertIsInstance(model.data(ind00, Qt.BackgroundRole),
                           (QColor, type(None)))
     self.assertIsInstance(model.data(ind00, Qt.TextAlignmentRole),
                           (Qt.Alignment, type(None)))
コード例 #3
0
 def test_concordance_output(self):
     model = ConcordanceModel()
     model.set_word("of", DummyState)
     model.set_corpus(self.corpus)
     output = model.get_data()
     self.assertEqual(len(output), 7)
     self.assertEqual(len(output.text_features), 1)
     self.assertTrue(output.text_features[0].name.startswith('Conc. of'))
コード例 #4
0
    def test_signals(self):
        """Setting corpus or word sets the proper signals"""
        model = ConcordanceModel()
        model.set_corpus(self.corpus)

        toBeReset = Mock()
        hasBeenReset = Mock()
        model.modelAboutToBeReset.connect(toBeReset)
        model.modelReset.connect(hasBeenReset)
        model.set_corpus(None)
        # toBeReset.assert_called_once() is only available from Py 3.6
        self.assertEqual(toBeReset.call_count, 1)
        self.assertEqual(hasBeenReset.call_count, 1)

        toBeReset.reset_mock()
        hasBeenReset.reset_mock()
        model.set_word(None, DummyState)
        self.assertEqual(toBeReset.call_count, 1)
        self.assertEqual(hasBeenReset.call_count, 1)
コード例 #5
0
    def test_signals(self):
        """Setting corpus or word sets the proper signals"""
        model = ConcordanceModel()
        model.set_corpus(self.corpus)

        toBeReset = Mock()
        hasBeenReset = Mock()
        model.modelAboutToBeReset.connect(toBeReset)
        model.modelReset.connect(hasBeenReset)
        model.set_corpus(None)
        # toBeReset.assert_called_once() is only available from Py 3.6
        self.assertEqual(toBeReset.call_count, 1)
        self.assertEqual(hasBeenReset.call_count, 1)

        toBeReset.reset_mock()
        hasBeenReset.reset_mock()
        model.set_word(None)
        self.assertEqual(toBeReset.call_count, 1)
        self.assertEqual(hasBeenReset.call_count, 1)
コード例 #6
0
    def test_data(self):
        """data returns proper text to display"""
        model = ConcordanceModel()
        model.set_width(2)
        self.assertEqual(model.rowCount(QModelIndex()), 0)

        model.set_corpus(self.corpus)
        model.set_word("of", DummyState)

        # The same document in two rows
        self.assertEqual(model.rowCount(QModelIndex()), 7)
        self.assertEqual(model.data(model.index(0, 0)), "A survey")
        self.assertEqual(model.data(model.index(0, 1)), "of")
        self.assertEqual(model.data(model.index(0, 2)), "user opinion")

        self.assertEqual(model.data(model.index(1, 0)), "user opinion")
        self.assertEqual(model.data(model.index(1, 1)), "of")
        self.assertEqual(model.data(model.index(1, 2)), "computer system")

        # The third column has just a single word
        self.assertEqual(model.data(model.index(2, 0)), "engineering testing")
        self.assertEqual(model.data(model.index(2, 1)), "of")
        self.assertEqual(model.data(model.index(2, 2)), "EPS")

        # The first column has just a single word
        self.assertEqual(model.data(model.index(3, 0)), "Relation")
        self.assertEqual(model.data(model.index(3, 1)), "of")
        self.assertEqual(model.data(model.index(3, 2)), "user perceived")
コード例 #7
0
 def test_matching_docs(self):
     model = ConcordanceModel()
     model.set_word("of", DummyState)
     model.set_corpus(self.corpus)
     self.assertEqual(model.matching_docs(), 6)
コード例 #8
0
    def test_set_word(self):
        """Concondance.set_word resets the indices"""
        # Human machine interface for lab abc computer applications
        model = ConcordanceModel()
        model.set_corpus(self.corpus)
        model.set_width(2)

        model.set_word("of", DummyState)
        self.assertEqual(model.rowCount(QModelIndex()), 7)
        self.assertEqual(model.data(model.index(0, 0)), "A survey")

        model.set_word("lab", DummyState)
        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(model.data(model.index(0, 0)), "interface for")

        model.set_word(None, DummyState)
        self.assertEqual(model.rowCount(QModelIndex()), 0)
コード例 #9
0
 def test_order_doesnt_matter(self):
     """Setting the word or the corpus first works"""
     model = ConcordanceModel()
     model.set_width(2)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(self.corpus)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word("of")
     self.assertEqual(model.rowCount(QModelIndex()), 7)
     model.set_word("")
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word("of")
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(self.corpus)
     self.assertEqual(model.rowCount(QModelIndex()), 7)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
コード例 #10
0
    def test_color_proper_rows(self):
        """Rows are colored corresponding to the document"""
        model = ConcordanceModel()
        model.set_width(2)
        model.set_corpus(self.corpus)
        model.set_word("of")

        color1 = model.data(model.index(0, 0), Qt.BackgroundRole)
        self.assertEqual(model.data(model.index(1, 0), Qt.BackgroundRole),
                         color1)
        self.assertNotEqual(model.data(model.index(2, 0), Qt.BackgroundRole),
                            color1)
コード例 #11
0
    def test_data(self):
        """data returns proper text to display"""
        model = ConcordanceModel()
        model.set_width(2)
        self.assertEqual(model.rowCount(QModelIndex()), 0)

        model.set_corpus(self.corpus)
        model.set_word("of")

        # The same document in two rows
        self.assertEqual(model.rowCount(QModelIndex()), 7)
        self.assertEqual(model.data(model.index(0, 0)), "A survey")
        self.assertEqual(model.data(model.index(0, 1)), "of")
        self.assertEqual(model.data(model.index(0, 2)), "user opinion")

        self.assertEqual(model.data(model.index(1, 0)), "user opinion")
        self.assertEqual(model.data(model.index(1, 1)), "of")
        self.assertEqual(model.data(model.index(1, 2)), "computer system")

        # The third column has just a single word
        self.assertEqual(model.data(model.index(2, 0)), "engineering testing")
        self.assertEqual(model.data(model.index(2, 1)), "of")
        self.assertEqual(model.data(model.index(2, 2)), "EPS")

        # The first column has just a single word
        self.assertEqual(model.data(model.index(3, 0)), "Relation")
        self.assertEqual(model.data(model.index(3, 1)), "of")
        self.assertEqual(model.data(model.index(3, 2)), "user perceived")
コード例 #12
0
 def test_concordance_output(self):
     model = ConcordanceModel()
     model.set_word("of")
     model.set_corpus(self.corpus)
     self.assertEqual(len(model.get_data()), 7)
コード例 #13
0
 def test_matching_docs(self):
     model = ConcordanceModel()
     model.set_word("of")
     model.set_corpus(self.corpus)
     self.assertEqual(model.matching_docs(), 6)
コード例 #14
0
    def test_color_proper_rows(self):
        """Rows are colored corresponding to the document"""
        model = ConcordanceModel()
        model.set_width(2)
        model.set_corpus(self.corpus)
        model.set_word("of", DummyState)

        color1 = model.data(model.index(0, 0), Qt.BackgroundRole)
        self.assertEqual(model.data(model.index(1, 0), Qt.BackgroundRole),
                         color1)
        self.assertNotEqual(model.data(model.index(2, 0), Qt.BackgroundRole),
                            color1)
コード例 #15
0
    def test_set_word(self):
        """Concondance.set_word resets the indices"""
        # Human machine interface for lab abc computer applications
        model = ConcordanceModel()
        model.set_corpus(self.corpus)
        model.set_width(2)

        model.set_word("of")
        self.assertEqual(model.rowCount(QModelIndex()), 7)
        self.assertEqual(model.data(model.index(0, 0)), "A survey")

        model.set_word("lab")
        self.assertEqual(model.rowCount(QModelIndex()), 1)
        self.assertEqual(model.data(model.index(0, 0)), "interface for")

        model.set_word(None)
        self.assertEqual(model.rowCount(QModelIndex()), 0)
コード例 #16
0
 def test_order_doesnt_matter(self):
     """Setting the word or the corpus first works"""
     model = ConcordanceModel()
     model.set_width(2)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(self.corpus)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word("of", DummyState)
     self.assertEqual(model.rowCount(QModelIndex()), 7)
     model.set_word("", DummyState)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word(None, DummyState)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_word("of", DummyState)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(self.corpus)
     self.assertEqual(model.rowCount(QModelIndex()), 7)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
     model.set_corpus(None)
     self.assertEqual(model.rowCount(QModelIndex()), 0)
コード例 #17
0
 def test_concordance_output(self):
     model = ConcordanceModel()
     model.set_word("of")
     model.set_corpus(self.corpus)
     self.assertEqual(len(model.get_data()), 7)