# HG changeset patch # User Jeff Hammel # Date 1426618413 25200 # Node ID 12649a88545ce9957c1de60edb6bf648e65340ec # Parent b6242f916cef162c24774d0fb897efe145c98a79 stubbing: hooking this up to command line diff -r b6242f916cef -r 12649a88545c numerics/manipulate.py --- a/numerics/manipulate.py Tue Mar 17 11:38:43 2015 -0700 +++ b/numerics/manipulate.py Tue Mar 17 11:53:33 2015 -0700 @@ -12,6 +12,7 @@ from .convert import default_cast, cast_columns from .data import transpose from .read import CSVParser +from .sort import Sorter # module globals __all__ = ['ManipulationParser', 'FloatParser', 'main'] diff -r b6242f916cef -r 12649a88545c numerics/sort.py --- a/numerics/sort.py Tue Mar 17 11:38:43 2015 -0700 +++ b/numerics/sort.py Tue Mar 17 11:53:33 2015 -0700 @@ -6,7 +6,17 @@ """ # module globals -__all__ = ['Sorter'] +__all__ = ['sort_arg', 'Sorter'] + +def sort_arg(string): + """converter appropriate for command line argument conversion""" + + forward = True + if string.startswith('-'): + forward = False + string = string[1:] + return (int(string), forward) + class Sorter(object): """ diff -r b6242f916cef -r 12649a88545c tests/test_sort.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_sort.py Tue Mar 17 11:53:33 2015 -0700 @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +unit tests for sort +""" + +import unittest +from numerics.sort import Sorter + +class SortUnitTest(unittest.TestCase): + + def test_sort(self): + """test array sorter""" + + data = [[1,2,3], + [5,6,4], + [2,7,2]] + + # forward + self.assertEqual(Sorter((-1, True))(data), + [[2,7,2], + [1,2,3], + [5,6,4]]) + self.assertEqual(Sorter((0, True))(data), + [[1,2,3], + [2,7,2], + [5,6,4]]) + self.assertEqual(Sorter((1, True))(data), + [[1,2,3], + [5,6,4], + [2,7,2]]) + def test_reverse(self): + data = [[1,2,3], + [5,6,4], + [2,7,2]] + self.assertEqual(Sorter((-1, False))(data), + [[5,6,4], + [1,2,3], + [2,7,2]]) + +if __name__ == '__main__': + unittest.main() +