From a3e4a9574690c4e80242e6b07beba870e7dc25db Mon Sep 17 00:00:00 2001
From: lukas leufen <l.leufen@fz-juelich.de>
Date: Fri, 6 Mar 2020 09:15:27 +0100
Subject: [PATCH] replaced keras_name_part_split by PyTestRegex class

---
 .gitlab-ci.yml                                |  2 +-
 .../test_inception_model.py                   | 32 ++++++-------------
 2 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f0da24d5..9f1ba73f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -32,7 +32,7 @@ tests:
     - django
   stage: test
   variables:
-    FAILURE_THRESHOLD: 90
+    FAILURE_THRESHOLD: 100
   before_script:
     - chmod +x ./CI/update_badge.sh
     - ./CI/update_badge.sh > /dev/null
diff --git a/test/test_model_modules/test_inception_model.py b/test/test_model_modules/test_inception_model.py
index d441925e..f9d30ea7 100644
--- a/test/test_model_modules/test_inception_model.py
+++ b/test/test_model_modules/test_inception_model.py
@@ -3,6 +3,7 @@ import pytest
 import re
 
 from src.model_modules.inception_model import InceptionModelBase
+from src.helpers import PyTestRegex
 
 
 class TestInceptionModelBase:
@@ -21,19 +22,6 @@ class TestInceptionModelBase:
             element = element.input._keras_history[0]
         return element
 
-    @staticmethod
-    def keras_name_part_split(test_value: str, target_value: str, sep='/'):
-        layer_name, layer_type = test_value.split(sep)
-        target_name, target_type = target_value.split(sep)
-        n_layer_name = len(re.findall("_", layer_name))
-        n_target_name = len(re.findall("_", target_name))
-        if (n_layer_name == n_target_name) or (n_layer_name == n_target_name + 1):
-            name_test = target_name in layer_name
-        else:
-            name_test = False
-        type_test = (layer_type == target_type)
-        return name_test and type_test
-
     def test_init(self, base):
         assert base.number_of_blocks == 0
         assert base.part_of_block == 0
@@ -159,16 +147,16 @@ class TestInceptionModelBase:
         assert len(concatenated) == 4
         block_1a, block_1b, block_pool1, block_pool2 = concatenated
         # keras_name_part_split
-        assert self.keras_name_part_split(block_1a.name, 'Block_1a_act_2/Relu:0')
-        assert self.keras_name_part_split(block_1b.name, 'Block_1b_act_2_tanh/Tanh:0')
-        assert self.keras_name_part_split(block_pool1.name, 'Block_1c_act_1/Relu:0')
-        assert self.keras_name_part_split(block_pool2.name, 'Block_1d_act_1/Relu:0')
+        assert block_1a.name == PyTestRegex(r'Block_1a_act_2(_\d*)?/Relu:0')
+        assert block_1b.name == PyTestRegex(r'Block_1b_act_2_tanh(_\d*)?/Tanh:0')
+        assert block_pool1.name == PyTestRegex(r'Block_1c_act_1(_\d*)?/Relu:0')
+        assert block_pool2.name == PyTestRegex(r'Block_1d_act_1(_\d*)?/Relu:0')
         assert self.step_in(block_1a._keras_history[0]).name == "Block_1a_3x3"
         assert self.step_in(block_1b._keras_history[0]).name == "Block_1b_5x5"
         assert isinstance(self.step_in(block_pool1._keras_history[0], depth=2), keras.layers.pooling.MaxPooling2D)
         assert isinstance(self.step_in(block_pool2._keras_history[0], depth=2), keras.layers.pooling.AveragePooling2D)
         # check naming of concat layer
-        assert self.keras_name_part_split(block.name, 'Block_1_Co/concat:0')
+        assert block.name == PyTestRegex('Block_1_Co(_\d*)?/concat:0')
         assert block._keras_history[0].name == 'Block_1_Co'
         assert isinstance(block._keras_history[0], keras.layers.merge.Concatenate)
         # next block
@@ -179,14 +167,14 @@ class TestInceptionModelBase:
         concatenated = block._keras_history[0].input
         assert len(concatenated) == 3
         block_2a, block_2b, block_pool = concatenated
-        assert self.keras_name_part_split(block_2a.name, 'Block_2a_act_2/Relu:0')
-        assert self.keras_name_part_split(block_2b.name, 'Block_2b_act_2_tanh/Tanh:0')
-        assert self.keras_name_part_split(block_pool.name, 'Block_2c_act_1/Relu:0')
+        assert block_2a.name == PyTestRegex(r'Block_2a_act_2(_\d*)?/Relu:0')
+        assert block_2b.name == PyTestRegex(r'Block_2b_act_2_tanh(_\d*)?/Tanh:0')
+        assert block_pool.name == PyTestRegex(r'Block_2c_act_1(_\d*)?/Relu:0')
         assert self.step_in(block_2a._keras_history[0]).name == "Block_2a_3x3"
         assert self.step_in(block_2b._keras_history[0]).name == "Block_2b_5x5"
         assert isinstance(self.step_in(block_pool._keras_history[0], depth=2), keras.layers.pooling.MaxPooling2D)
         # check naming of concat layer
-        assert self.keras_name_part_split(block.name, 'Block_2_Co/concat:0')
+        assert block.name == PyTestRegex(r'Block_2_Co(_\d*)?/concat:0')
         assert block._keras_history[0].name == 'Block_2_Co'
         assert isinstance(block._keras_history[0], keras.layers.merge.Concatenate)
 
-- 
GitLab