From b540bcb00bfc445497839946da1f9f48c70c5db5 Mon Sep 17 00:00:00 2001
From: "Vriezen, E.C. (Emma)" <e.vriezen@student.ru.nl>
Date: Mon, 16 Dec 2019 12:20:04 +0100
Subject: [PATCH] Marked source words only as their type of mistake if they are
 not marked already.

---
 umbra/mistake_finder.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/umbra/mistake_finder.py b/umbra/mistake_finder.py
index bad5a46c..5a41504c 100644
--- a/umbra/mistake_finder.py
+++ b/umbra/mistake_finder.py
@@ -40,7 +40,8 @@ class MistakeFinder:
         # PRINT FOR TEST OF SO FAR IMPLEMENTED MISTAKE CHECKS:
         for word in self._shadow:
             if word.mistake == Mistake.REPETITION or word.mistake\
-                    == Mistake.SEMANTIC or word.mistake == Mistake.FORM:
+                    == Mistake.SEMANTIC or word.mistake == Mistake.FORM or\
+                    word.mistake == Mistake.PHONETIC:
                 print(str(word) + " " + str(word.mistake))
 
     def _determine_mistake(self, index, word):
@@ -84,7 +85,8 @@ class MistakeFinder:
             src_word = self._source[src_index]
             if DutchPhonetics.compare(src_word.word, shd_word.word):
                 shd_word.mistake = Mistake.PHONETIC
-                src_word.mistake = Mistake.PHONETIC
+                if not src_word.shadowed and src_word.mistake is None:
+                    src_word.mistake = Mistake.PHONETIC
                 phonetic_mistake = True
             src_index += 1
         return phonetic_mistake
@@ -114,7 +116,8 @@ class MistakeFinder:
             if semantic_mistake:
                 shd_word.mistake = Mistake.SEMANTIC
                 shd_word.source = src_word
-                src_word.mistake = Mistake.SEMANTIC
+                if not src_word.shadowed and src_word.mistake is None:
+                    src_word.mistake = Mistake.SEMANTIC
             src_index += 1
         return semantic_mistake
 
@@ -132,7 +135,8 @@ class MistakeFinder:
             if form_mistake:
                 shd_word.mistake = Mistake.FORM
                 shd_word.source = src_word
-                src_word.mistake = Mistake.FORM
+                if not src_word.shadowed and src_word.mistake is None:
+                    src_word.mistake = Mistake.FORM
             src_index += 1
         return form_mistake
 
-- 
GitLab