Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ianj-als/pypeline.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Johnson <ian.johnson@appliedlanguage.com>2013-08-27 18:38:58 +0400
committerIan Johnson <ian.johnson@appliedlanguage.com>2013-08-27 18:38:58 +0400
commitb99b106564bec82b2342e4cb6840d1549343c8dd (patch)
tree7a344ce87727502716598ca96dcd00af10343095
parent7669d8d91a18236d3a321ab28785eddfb61f88e5 (diff)
Fixed continuation monad unit test.HEADmaster
-rw-r--r--setup.py2
-rw-r--r--src/pypeline/core/types/cont.py6
-rw-r--r--src/pypeline/core/types/tests/cont_tests.py11
3 files changed, 11 insertions, 8 deletions
diff --git a/setup.py b/setup.py
index 0b32104..aa5af71 100644
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,7 @@ from setuptools import setup, find_packages
setup(
name = "pypeline",
- version = "0.3.0",
+ version = "0.3.1",
packages = find_packages("src", exclude = ["*tests"]),
package_dir = {'': 'src'},
diff --git a/src/pypeline/core/types/cont.py b/src/pypeline/core/types/cont.py
index 91614f5..3865f1e 100644
--- a/src/pypeline/core/types/cont.py
+++ b/src/pypeline/core/types/cont.py
@@ -63,9 +63,9 @@ def callCC(f):
type(f) is not types.MethodType:
raise ValueError("Must be a function or method")
- def function(k):
+ def continuation(k):
def function_arg(a):
- return Cont(lambda x: k(a))
+ return Cont(lambda _: k(a))
return Cont.runCont(f(function_arg), k)
- return Cont(function)
+ return Cont(continuation)
diff --git a/src/pypeline/core/types/tests/cont_tests.py b/src/pypeline/core/types/tests/cont_tests.py
index 13ad05f..f244d35 100644
--- a/src/pypeline/core/types/tests/cont_tests.py
+++ b/src/pypeline/core/types/tests/cont_tests.py
@@ -17,8 +17,6 @@
# along with Pypeline. If not, see <http://www.gnu.org/licenses/>.
#
import unittest
-import os
-import sys
from pypeline.core.types.cont import Cont, return_, callCC
@@ -59,7 +57,12 @@ class ContMonadUnitTest(unittest.TestCase):
return callCC(lambda ok: callCC(lambda not_ok: not_ok("Divide by zero error") if y is 0 else ok(x / y)) >=
(lambda err: k(err)))
- error = lambda err: Cont(lambda _: sys.stderr.write(err + os.linesep))
+ error = lambda err: Cont(lambda _: self.__set_error_message(err))
self.assertEquals(3, Cont.runCont(divide_cps(10, 3, error), lambda x: x))
- self.assertEquals(None, Cont.runCont(divide_cps(10, 0, error), lambda x: x))
+ Cont.runCont(divide_cps(10, 0, error), lambda x: x)
+ self.assertEquals("Divide by zero error", self.error_message)
+
+
+ def __set_error_message(self, err):
+ self.error_message = err