Example #1
0
    def test_get_conditional_probabilities_weighted(self):
        self.set_up()
        ass = Association([self.de, self.het], self.filters, weighted=True)

        self.assertEqual(set(ass.get_conditional_probabilities()), {
            (None, 1.0, self.de, self.de),
            (None, 1.0, self.het, self.het),
            (None, 0.3, self.de, self.het),
            (None, .75, self.het, self.de),
        })
Example #2
0
    def test_get_conditional_probabilities_weighted(self):
        self.set_up()
        ass = Association([self.de, self.het], self.filters, weighted=True)

        self.assertEqual(
            set(ass.get_conditional_probabilities()), {
                (None, 1.0, self.de, self.de),
                (None, 1.0, self.het, self.het),
                (None, 0.3, self.de, self.het),
                (None, .75, self.het, self.de),
            })
Example #3
0
    def test_empty_values(self):
        self.set_up()

        ass = Association([self.het, self.aap], self.filters)

        interval, table = next(ass.get_crosstables())
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(set(rows), {
            (self.aap, '-', '-'),
            (self.het, '-', '1.0'),
        })
Example #4
0
    def test_empty_values(self):
        self.set_up()


        ass = Association([self.het, self.aap], self.filters)

        interval, table = next(ass.get_crosstables())
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(set(rows), {
            (self.aap, '-', '-'),
            (self.het, '-', '1.0'),
        })
Example #5
0
    def set_up(self):
        self.aset = amcattest.create_test_set()
        self.a1 = amcattest.create_test_article(text="de de het",
                                                articleset=self.aset)
        self.a2 = amcattest.create_test_article(text="de",
                                                articleset=self.aset)
        self.a3 = amcattest.create_test_article(text="een",
                                                articleset=self.aset)

        self.de = SearchQuery.from_string("de")
        self.het = SearchQuery.from_string("het")
        self.aap = SearchQuery.from_string("aap")

        self.filters = {"sets": [self.aset.id]}
        amcates.ES().flush()

        self.ass = Association([self.de, self.het], self.filters)
Example #6
0
    def get_association(self, form):
        selection = SelectionSearch(form)
        filters = selection.get_filters()
        queries = selection.get_queries()

        weighted = form.cleaned_data["weigh"]
        interval = form.cleaned_data["interval"]

        return Association(queries,
                           filters,
                           weighted=weighted,
                           interval=interval)
Example #7
0
    def set_up(self):
        self.aset = amcattest.create_test_set()
        self.a1 = amcattest.create_test_article(text="de de het", articleset=self.aset)
        self.a2 = amcattest.create_test_article(text="de", articleset=self.aset)
        self.a3 = amcattest.create_test_article(text="een", articleset=self.aset)

        self.de = SearchQuery.from_string("de")
        self.het = SearchQuery.from_string("het")
        self.aap = SearchQuery.from_string("aap")

        self.filters = {"sets": [self.aset.id]}
        amcates.ES().flush()

        self.ass = Association([self.de, self.het], self.filters)
Example #8
0
class TestAssociation(amcattest.AmCATTestCase):
    def set_up(self):
        self.aset = amcattest.create_test_set()
        self.a1 = amcattest.create_test_article(text="de de het",
                                                articleset=self.aset)
        self.a2 = amcattest.create_test_article(text="de",
                                                articleset=self.aset)
        self.a3 = amcattest.create_test_article(text="een",
                                                articleset=self.aset)

        self.de = SearchQuery.from_string("de")
        self.het = SearchQuery.from_string("het")
        self.aap = SearchQuery.from_string("aap")

        self.filters = {"sets": [self.aset.id]}
        amcates.ES().flush()

        self.ass = Association([self.de, self.het], self.filters)

    @amcattest.use_elastic
    def test_get_conditional_probabilities(self):
        self.set_up()

        self.assertEqual(
            set(self.ass.get_conditional_probabilities()), {
                (None, 1.0, self.de, self.de),
                (None, 1.0, self.het, self.het),
                (None, 0.5, self.de, self.het),
                (None, 1.0, self.het, self.de),
            })

    @amcattest.use_elastic
    def test_get_conditional_probabilities_weighted(self):
        self.set_up()
        ass = Association([self.de, self.het], self.filters, weighted=True)

        self.assertEqual(
            set(ass.get_conditional_probabilities()), {
                (None, 1.0, self.de, self.de),
                (None, 1.0, self.het, self.het),
                (None, 0.3, self.de, self.het),
                (None, .75, self.het, self.de),
            })

    @amcattest.use_elastic
    def test_get_table(self):
        self.set_up()

        # get_table() should ignore P(X|Y) where X = Y.
        headers, rows = self.ass.get_table()
        self.assertEqual(set(rows), {
            (None, self.de, self.het, '0.5'),
            (None, self.het, self.de, '1.0'),
        })

    @amcattest.use_elastic
    def test_get_crosstables(self):
        self.set_up()

        tables = list(self.ass.get_crosstables())
        interval, table = tables[0]
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(1, len(tables))
        self.assertEqual(headers, ("", ) + self.ass.get_queries())
        self.assertEqual(set(rows), {(self.de, '1.0', '0.5'),
                                     (self.het, '1.0', '1.0')})

    @amcattest.use_elastic
    def test_empty_values(self):
        self.set_up()

        ass = Association([self.het, self.aap], self.filters)

        interval, table = next(ass.get_crosstables())
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(set(rows), {
            (self.aap, '-', '-'),
            (self.het, '-', '1.0'),
        })
Example #9
0
class TestAssociation(amcattest.AmCATTestCase):
    def set_up(self):
        self.aset = amcattest.create_test_set()
        self.a1 = amcattest.create_test_article(text="de de het", articleset=self.aset)
        self.a2 = amcattest.create_test_article(text="de", articleset=self.aset)
        self.a3 = amcattest.create_test_article(text="een", articleset=self.aset)

        self.de = SearchQuery.from_string("de")
        self.het = SearchQuery.from_string("het")
        self.aap = SearchQuery.from_string("aap")

        self.filters = {"sets": [self.aset.id]}
        amcates.ES().flush()

        self.ass = Association([self.de, self.het], self.filters)

    @amcattest.use_elastic
    def test_get_conditional_probabilities(self):
        self.set_up()

        self.assertEqual(set(self.ass.get_conditional_probabilities()), {
            (None, 1.0, self.de, self.de),
            (None, 1.0, self.het, self.het),
            (None, 0.5, self.de, self.het),
            (None, 1.0, self.het, self.de),
        })

    @amcattest.use_elastic
    def test_get_conditional_probabilities_weighted(self):
        self.set_up()
        ass = Association([self.de, self.het], self.filters, weighted=True)

        self.assertEqual(set(ass.get_conditional_probabilities()), {
            (None, 1.0, self.de, self.de),
            (None, 1.0, self.het, self.het),
            (None, 0.3, self.de, self.het),
            (None, .75, self.het, self.de),
        })

    @amcattest.use_elastic
    def test_get_table(self):
        self.set_up()

        # get_table() should ignore P(X|Y) where X = Y.
        headers, rows = self.ass.get_table()
        self.assertEqual(set(rows), {
            (None, self.de, self.het, '0.5'),
            (None, self.het, self.de, '1.0'),
        })

    @amcattest.use_elastic
    def test_get_crosstables(self):
        self.set_up()

        tables = list(self.ass.get_crosstables())
        interval, table = tables[0]
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(1, len(tables))
        self.assertEqual(headers, ("",) + self.ass.get_queries())
        self.assertEqual(set(rows), {
            (self.de, '1.0', '0.5'),
            (self.het, '1.0', '1.0')
        })

    @amcattest.use_elastic
    def test_empty_values(self):
        self.set_up()


        ass = Association([self.het, self.aap], self.filters)

        interval, table = next(ass.get_crosstables())
        table = list(table)
        headers, rows = table[0], table[1:]

        self.assertEqual(set(rows), {
            (self.aap, '-', '-'),
            (self.het, '-', '1.0'),
        })