Esempio n. 1
0
 def test_document_clone_with_single_tag(self):
     scope = Scope(database=self._database)
     scope.add_tag(6)
     self.assertEqual(set(scope.get_concept_document_ids()), {4, 7})
     self.assertEqual(scope.get_concept_tag_ids(), [6])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5})
     cloned_document = scope.clone_document(2)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {4, 7, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [6])
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {4, 7, cloned_document.id})
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5})
     scope.remove_tag(6)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     scope.select_document(cloned_document.id)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(scope.get_selection_tag_ids(), [6])
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8})
     self.assertEqual(scope.get_selection_only_tag_ids(), [6])
Esempio n. 2
0
 def test_document_clone_to_root(self):
     scope = Scope(database=self._database)
     cloned_document = scope.clone_document(7)
     self.assertNotEqual(cloned_document.id, 7)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     scope.select_document(cloned_document.id)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(scope.get_selection_tag_ids(), [])
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8})
     self.assertEqual(scope.get_selection_only_tag_ids(), [])
Esempio n. 3
0
 def test_invalid_document_clone(self):
     scope = Scope(database=self._database)
     with self.assertRaises(ValueError):
         _ = scope.clone_document(9)
Esempio n. 4
0
 def test_document_clone_with_multiple_tags(self):
     scope = Scope(database=self._database)
     scope.add_tag(2)
     scope.add_tag(3)
     scope.add_tag(6)
     self.assertEqual(scope.get_concept_document_ids(), [])
     self.assertEqual(set(scope.get_concept_tag_ids()), {2, 3, 6})
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(scope.get_concept_only_document_ids(), [])
     self.assertEqual(set(scope.get_selection_only_tag_ids()), {1, 4, 5})
     cloned_document = scope.clone_document(6)
     self.assertNotEqual(cloned_document.id, 6)
     self.assertEqual(scope.get_concept_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_concept_tag_ids()), {2, 3, 6})
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(scope.get_concept_only_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_selection_only_tag_ids()), {1, 4, 5})
     scope.select_document(cloned_document.id)
     self.assertEqual(scope.get_concept_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_concept_tag_ids()), {2, 3, 6})
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_selection_tag_ids()), {2, 3, 6})
     self.assertEqual(scope.get_concept_only_document_ids(), [])
     self.assertEqual(scope.get_selection_only_tag_ids(), [])
     scope.remove_tag(3)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {4, cloned_document.id})
     self.assertEqual(set(scope.get_concept_tag_ids()), {2, 6})
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_selection_tag_ids()), {2, 3, 6})
     self.assertEqual(scope.get_concept_only_document_ids(), [4])
     self.assertEqual(scope.get_selection_only_tag_ids(), [3])
     scope.remove_tag(2)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {4, 7, cloned_document.id})
     self.assertEqual(set(scope.get_concept_tag_ids()), {6})
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_selection_tag_ids()), {2, 3, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()), {4, 7})
     self.assertEqual(set(scope.get_selection_only_tag_ids()), {2, 3})
     scope.remove_tag(6)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(),
                      [cloned_document.id])
     self.assertEqual(set(scope.get_selection_tag_ids()), {2, 3, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8})
     self.assertEqual(set(scope.get_selection_only_tag_ids()), {2, 3, 6})
     scope.deselect_document(cloned_document.id)
     self.assertEqual(set(scope.get_concept_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(scope.get_concept_tag_ids(), [])
     self.assertEqual(scope.get_selection_document_ids(), [])
     self.assertEqual(set(scope.get_selection_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(set(scope.get_concept_only_document_ids()),
                      {1, 2, 3, 4, 5, 6, 7, 8, cloned_document.id})
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     document_counts = {1: 4, 2: 3 + 1, 3: 3 + 1, 4: 2, 5: 3, 6: 2 + 1}
     for tag_id, document_count in document_counts.items():
         scope.add_tag(tag_id)
         self.assertEqual(len(scope.get_concept_documents()),
                          document_count)
         scope.remove_tag(tag_id)