Commit a166e994 authored by André Anjos's avatar André Anjos

Merge branch 'improve_two_loops_testing' into 'master'

Improve two loops testing

See merge request !88
parents e08c9377 b7a6d936
Pipeline #32978 failed with stages
in 114 minutes and 43 seconds
......@@ -314,12 +314,16 @@ class LocalExecutor(BaseExecutor):
retval = self.loop_executor.setup()
if not retval:
self.__cleanup()
raise RuntimeError("Loop algorithm setup failed")
raise RuntimeError(
"Loop algorithm {} setup failed".format(self.algorithm.name)
)
prepared = self.loop_executor.prepare()
if not prepared:
self.__cleanup()
raise RuntimeError("Loop algorithm prepare failed")
raise RuntimeError(
"Loop algorithm {} prepare failed".format(self.algorithm.name)
)
self.loop_executor.process()
......@@ -334,12 +338,14 @@ class LocalExecutor(BaseExecutor):
retval = self.executor.setup()
if not retval:
self.__cleanup()
raise RuntimeError("Algorithm setup failed")
raise RuntimeError("Algorithm {} setup failed".format(self.algorithm.name))
prepared = self.executor.prepare()
if not prepared:
self.__cleanup()
raise RuntimeError("Algorithm prepare failed")
raise RuntimeError(
"Algorithm {} prepare failed".format(self.algorithm.name)
)
_start = time.time()
......@@ -352,7 +358,9 @@ class LocalExecutor(BaseExecutor):
if not processed:
self.__cleanup()
raise RuntimeError("Algorithm process failed")
raise RuntimeError(
"Algorithm {} process failed".format(self.algorithm.name)
)
proc_time = time.time() - _start
......
{
"schema_version": 3,
"language": "python",
"api_version": 2,
"type": "sequential",
"splittable": false,
"groups": [
{
"name": "main",
"inputs": {
"in_data": {
"type": "user/single_integer/1"
}
},
"outputs": {
"out_data": {
"type": "user/single_integer/1"
}
}
}
],
"parameters": {
"offset": {
"default": 0,
"type": "int8",
"description": "Offset to apply"
}
}
}
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
###################################################################################
# #
# Copyright (c) 2019 Idiap Research Institute, http://www.idiap.ch/ #
# Contact: beat.support@idiap.ch #
# #
# Redistribution and use in source and binary forms, with or without #
# modification, are permitted provided that the following conditions are met: #
# #
# 1. Redistributions of source code must retain the above copyright notice, this #
# list of conditions and the following disclaimer. #
# #
# 2. Redistributions in binary form must reproduce the above copyright notice, #
# this list of conditions and the following disclaimer in the documentation #
# and/or other materials provided with the distribution. #
# #
# 3. Neither the name of the copyright holder nor the names of its contributors #
# may be used to endorse or promote products derived from this software without #
# specific prior written permission. #
# #
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND #
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED #
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE #
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE #
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL #
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR #
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER #
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, #
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE #
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #
# #
###################################################################################
class Algorithm:
def setup(self, parameters):
self.offset = parameters["offset"]
return True
def process(self, inputs, data_loaders, outputs):
outputs["out_data"].write({"value": inputs["in_data"].data.value + self.offset})
return True
{
"schema_version": 2,
"blocks": {
"echo_for_loop_processor": {
"algorithm": "v1/integers_echo/1",
"parameters": {
},
"offsetter_for_loop_processor": {
"algorithm": "user/integers_offsetter/1",
"inputs": {
"in_data": "in"
},
"outputs": {
"out_data": "out"
},
"parameters": {
"offset": 1
}
},
"echo_for_loop_evaluator": {
"algorithm": "v1/integers_echo/1",
"parameters": {
},
"offsetter_for_loop_evaluator": {
"algorithm": "user/integers_offsetter/1",
"inputs": {
"in_data": "in"
},
......@@ -27,8 +26,6 @@
"loops": {
"loop_super_block": {
"algorithm": "user/db_input_loop_processor/1",
"parameters": {
},
"inputs": {
"in": "in"
},
......@@ -49,8 +46,6 @@
},
"echo_loop_block": {
"algorithm": "user/block_input_loop_processor/1",
"parameters": {
},
"inputs": {
"in": "in"
},
......@@ -73,16 +68,12 @@
"analyzers": {
"analysis": {
"algorithm": "v1/integers_analysis/1",
"parameters": {
},
"inputs": {
"input": "input"
}
},
"loop_analysis": {
"algorithm": "v1/integers_analysis/1",
"parameters": {
},
"inputs": {
"input": "input"
}
......@@ -111,6 +102,9 @@
},
"user/block_input_loop_evaluator/1" : {
"threshold": 9
},
"user/integers_offsetter/1": {
"offset": 0
}
}
}
......@@ -13,21 +13,21 @@
},
{
"from": "loop_super_block.out",
"to": "echo_for_loop_processor.in",
"to": "offsetter_for_loop_processor.in",
"channel": "integers"
},
{
"from": "loop_super_block.out_loop",
"to": "echo_for_loop_evaluator.in",
"to": "offsetter_for_loop_evaluator.in",
"channel": "integers"
},
{
"from": "echo_for_loop_processor.out",
"from": "offsetter_for_loop_processor.out",
"to": "echo_loop_block.in",
"channel": "integers"
},
{
"from": "echo_for_loop_evaluator.out",
"from": "offsetter_for_loop_evaluator.out",
"to": "echo_loop_block.in_loop",
"channel": "integers"
},
......@@ -93,7 +93,7 @@
],
"blocks": [
{
"name": "echo_for_loop_processor",
"name": "offsetter_for_loop_processor",
"synchronized_channel": "integers",
"inputs": [
"in"
......@@ -103,7 +103,7 @@
]
},
{
"name": "echo_for_loop_evaluator",
"name": "offsetter_for_loop_evaluator",
"synchronized_channel": "integers",
"inputs": [
"in"
......
......@@ -358,7 +358,7 @@ class BaseExecutionMixIn(object):
nose.tools.assert_is_none(
self.execute(
"user/user/two_loops/1/two_loops",
[{"sum": 612, "nb": 9}, {"sum": 108, "nb": 9}],
[{"sum": 621, "nb": 9}, {"sum": 108, "nb": 9}],
)
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment