from nose.tools import eq_

from orges.invoker.simple import SimpleInvoker
from orges.invoker.pluggable import PluggableInvoker

from orges.main import custom_optimize
from orges.optimizer.gridsearchoptimizer import GridSearchOptimizer

import orges.test.utils as utils

def test_custom_optimize_running_too_long_aborts():
    invoker = PluggableInvoker(None, invoker=SimpleInvoker(None))
    optimizer = GridSearchOptimizer()

    f = utils.one_param_sleep_and_negate_f
    val = custom_optimize(f, optimizer=optimizer, invoker=invoker, timeout=1)[1]

    # f(a=0) is 0, f(a=1) is -1. Because of the timeout we never see a=1, hence
    # we except the minimum before the timeout to be 0.
    eq_(val, 0)

if __name__ == '__main__':
    import nose
    nose.runmodule()
from nose.tools import eq_

# from orges.invoker.simple import SimpleInvoker
from orges.invoker.multiprocess import MultiProcessInvoker
from orges.invoker.pluggable import PluggableInvoker

from orges.main import custom_optimize
from orges.optimizer.gridsearchoptimizer import GridSearchOptimizer

import orges.test.utils as utils

def test_custom_optimize_running_too_long_aborts():
    invoker = PluggableInvoker(None, invoker=MultiProcessInvoker())
    optimizer = GridSearchOptimizer()

    f = utils.one_param_sleep_and_negate_f
    val = custom_optimize(f, optimizer=optimizer, invoker=invoker, timeout=1)[1]

    # f(a=0) is 0, f(a=1) is -1. Because of the timeout we never see a=1, hence
    # we except the minimum before the timeout to be 0.
    eq_(val, 0)

if __name__ == '__main__':
    import nose
    nose.runmodule()
Change test to use MultiProcessInvoker
Change test to use MultiProcessInvoker

  from nose.tools import eq_
  
- from orges.invoker.simple import SimpleInvoker
+ # from orges.invoker.simple import SimpleInvoker
+ from orges.invoker.multiprocess import MultiProcessInvoker
  from orges.invoker.pluggable import PluggableInvoker
  
  from orges.main import custom_optimize
  from orges.optimizer.gridsearchoptimizer import GridSearchOptimizer
  
  import orges.test.utils as utils
  
  def test_custom_optimize_running_too_long_aborts():
-     invoker = PluggableInvoker(None, invoker=SimpleInvoker(None))
+     invoker = PluggableInvoker(None, invoker=MultiProcessInvoker())
      optimizer = GridSearchOptimizer()
  
      f = utils.one_param_sleep_and_negate_f
      val = custom_optimize(f, optimizer=optimizer, invoker=invoker, timeout=1)[1]
  
      # f(a=0) is 0, f(a=1) is -1. Because of the timeout we never see a=1, hence
      # we except the minimum before the timeout to be 0.
      eq_(val, 0)
  
  if __name__ == '__main__':
      import nose
      nose.runmodule()
Change test to use MultiProcessInvoker
## Code Before:
from nose.tools import eq_

from orges.invoker.simple import SimpleInvoker
from orges.invoker.pluggable import PluggableInvoker

from orges.main import custom_optimize
from orges.optimizer.gridsearchoptimizer import GridSearchOptimizer

import orges.test.utils as utils

def test_custom_optimize_running_too_long_aborts():
    invoker = PluggableInvoker(None, invoker=SimpleInvoker(None))
    optimizer = GridSearchOptimizer()

    f = utils.one_param_sleep_and_negate_f
    val = custom_optimize(f, optimizer=optimizer, invoker=invoker, timeout=1)[1]

    # f(a=0) is 0, f(a=1) is -1. Because of the timeout we never see a=1, hence
    # we except the minimum before the timeout to be 0.
    eq_(val, 0)

if __name__ == '__main__':
    import nose
    nose.runmodule()
## Instruction:
Change test to use MultiProcessInvoker
## Code After:
from nose.tools import eq_

# from orges.invoker.simple import SimpleInvoker
from orges.invoker.multiprocess import MultiProcessInvoker
from orges.invoker.pluggable import PluggableInvoker

from orges.main import custom_optimize
from orges.optimizer.gridsearchoptimizer import GridSearchOptimizer

import orges.test.utils as utils

def test_custom_optimize_running_too_long_aborts():
    invoker = PluggableInvoker(None, invoker=MultiProcessInvoker())
    optimizer = GridSearchOptimizer()

    f = utils.one_param_sleep_and_negate_f
    val = custom_optimize(f, optimizer=optimizer, invoker=invoker, timeout=1)[1]

    # f(a=0) is 0, f(a=1) is -1. Because of the timeout we never see a=1, hence
    # we except the minimum before the timeout to be 0.
    eq_(val, 0)

if __name__ == '__main__':
    import nose
    nose.runmodule()