aboutsummaryrefslogtreecommitdiff
path: root/wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py')
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py57
1 files changed, 23 insertions, 34 deletions
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py b/wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py
index 58900778..4c34080c 100644
--- a/wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py
+++ b/wqflask/wqflask/my_pylmm/pyLMM/chunk_test.py
@@ -2,27 +2,29 @@ from __future__ import absolute_import, print_function, division
import math
import time
-import collections
-"""
-558 exact out of 1000 [Total amount off: 1580]
-"""
-
-
-def zach_divide_into_chunks(the_list, number_chunks):
+def divide_into_chunks(the_list, number_chunks):
+ """Divides a list into approximately number_chunks smaller lists
+
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 3)
+ [[1, 2, 7], [3, 22, 8], [5, 22, 333]]
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 4)
+ [[1, 2, 7], [3, 22, 8], [5, 22, 333]]
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 5)
+ [[1, 2], [7, 3], [22, 8], [5, 22], [333]]
+ >>>
+
+ """
length = len(the_list)
+
if length == 0:
return [[]]
-
- if number_chunks > length:
+
+ if length <= number_chunks:
number_chunks = length
chunksize = int(math.ceil(length / number_chunks))
- #if length % number_chunks > 0:
- # chunksize += 1
- # while (chunksize * number_chunks) > length:
- # number_chunks -= 1
chunks = []
for counter in range(0, length, chunksize):
@@ -30,24 +32,6 @@ def zach_divide_into_chunks(the_list, number_chunks):
return chunks
-
-def sam_divide_into_chunks(the_list, number_chunks):
- length = len(the_list)
-
- if length == 0:
- return [[]]
- else:
- if length <= number_chunks:
- number_chunks = length
-
- chunksize = int(math.ceil(length / number_chunks))
-
- chunks = []
- for counter in range(0, length, chunksize):
- chunks.append(the_list[counter:counter+chunksize])
-
- return chunks
-
def confirm_chunk(original, result):
all_chunked = []
for chunk in result:
@@ -86,13 +70,15 @@ def chunk_test(divide_func):
print("\n{} exact out of {} [Total amount off: {}]".format(number_exact,
test,
total_amount_off))
-
+ assert number_exact == 558
+ assert total_amount_off == 1580
return number_exact, total_amount_off
def main():
info = dict()
- funcs = (("sam", sam_divide_into_chunks), ("zach", zach_divide_into_chunks))
+ #funcs = (("sam", sam_divide_into_chunks), ("zach", zach_divide_into_chunks))
+ funcs = (("only one", divide_into_chunks),)
for name, func in funcs:
start = time.time()
number_exact, total_amount_off = chunk_test(func)
@@ -104,4 +90,7 @@ def main():
print("info is:", info)
if __name__ == '__main__':
- main() \ No newline at end of file
+ main()
+ print("\nConfirming doctests...")
+ import doctest
+ doctest.testmod() \ No newline at end of file