1 from unittest
import TestCase, main
9 def test_create_every_parameter_combination(self):
11 parameter_names = [
"A",
"B",
"C"]
18 every_parameter_combination = create_every_parameter_combination(parameter_names,
21 self.assertEqual(len(every_parameter_combination), 8)
23 self.assertIn({
"A": 1,
"B":
"a",
"C":
"("}, every_parameter_combination)
24 self.assertIn({
"A": 1,
"B":
"a",
"C":
")"}, every_parameter_combination)
25 self.assertIn({
"A": 1,
"B":
"b",
"C":
"("}, every_parameter_combination)
26 self.assertIn({
"A": 1,
"B":
"b",
"C":
")"}, every_parameter_combination)
27 self.assertIn({
"A": 2,
"B":
"a",
"C":
"("}, every_parameter_combination)
28 self.assertIn({
"A": 2,
"B":
"a",
"C":
")"}, every_parameter_combination)
29 self.assertIn({
"A": 2,
"B":
"b",
"C":
"("}, every_parameter_combination)
30 self.assertIn({
"A": 2,
"B":
"b",
"C":
")"}, every_parameter_combination)
32 def test_create_all_calculations_no_queue(self):
33 def creator_function(x, y):
34 return {
"a": 2 * x,
"b": y + 1}
36 all_calculation_kwargs, all_queues, every_parameter_combination = create_all_calculations(creator_function,
39 all_calculation_kwargs = list(all_calculation_kwargs)
40 all_queues = list(all_queues)
41 every_parameter_combination = list(every_parameter_combination)
43 self.assertEqual(len(all_calculation_kwargs), 4)
44 self.assertEqual(len(all_queues), 4)
45 self.assertEqual(len(every_parameter_combination), 4)
47 self.assertIn({
"x": 1,
"y": 3}, every_parameter_combination)
48 self.assertIn({
"x": 1,
"y": 4}, every_parameter_combination)
49 self.assertIn({
"x": 2,
"y": 3}, every_parameter_combination)
50 self.assertIn({
"x": 2,
"y": 4}, every_parameter_combination)
52 for combination
in [{
"x": 1,
"y": 3}, {
"x": 1,
"y": 4}, {
"x": 2,
"y": 3}, {
"x": 2,
"y": 4}]:
53 index = every_parameter_combination.index(combination)
56 self.assertEqual(all_calculation_kwargs[index], {
"a": 2 * x,
"b": y + 1})
58 def test_create_all_calculations_queue(self):
59 def creator_function(x, y, queue):
60 return {
"a": 2 * x,
"b": y + 1,
"queue": queue}
62 all_calculation_kwargs, all_queues, every_parameter_combination = create_all_calculations(creator_function,
65 all_calculation_kwargs = list(all_calculation_kwargs)
66 all_queues = list(all_queues)
67 every_parameter_combination = list(every_parameter_combination)
69 self.assertEqual(len(all_calculation_kwargs), 4)
70 self.assertEqual(len(all_queues), 4)
71 self.assertEqual(len(every_parameter_combination), 4)
73 self.assertIn({
"x": 1,
"y": 3}, every_parameter_combination)
74 self.assertIn({
"x": 1,
"y": 4}, every_parameter_combination)
75 self.assertIn({
"x": 2,
"y": 3}, every_parameter_combination)
76 self.assertIn({
"x": 2,
"y": 4}, every_parameter_combination)
78 for combination
in [{
"x": 1,
"y": 3}, {
"x": 1,
"y": 4}, {
"x": 2,
"y": 3}, {
"x": 2,
"y": 4}]:
79 index = every_parameter_combination.index(combination)
82 self.assertEqual(all_calculation_kwargs[index], {
"a": 2 * x,
"b": y + 1,
"queue": all_queues[index]})
84 def test_create_all_calculations_none(self):
85 def creator_function(x, y):
88 return {
"a": 2 * x,
"b": y + 1}
90 all_calculation_kwargs, all_queues, every_parameter_combination = create_all_calculations(creator_function,
92 all_calculation_kwargs = list(all_calculation_kwargs)
93 all_queues = list(all_queues)
94 every_parameter_combination = list(every_parameter_combination)
96 self.assertEqual(len(all_calculation_kwargs), 4)
97 self.assertEqual(len(all_queues), 4)
98 self.assertEqual(len(every_parameter_combination), 4)
100 self.assertIn({
"a": 2,
"b": 4}, all_calculation_kwargs)
101 self.assertIn({
"a": 2,
"b": 5}, all_calculation_kwargs)
102 self.assertNotIn({
"a": 4,
"b": 4}, all_calculation_kwargs)
103 self.assertNotIn({
"a": 4,
"b": 5}, all_calculation_kwargs)
105 for combination
in [{
"x": 1,
"y": 3}, {
"x": 1,
"y": 4}, {
"x": 2,
"y": 3}, {
"x": 2,
"y": 4}]:
106 index = every_parameter_combination.index(combination)
111 self.assertEqual(all_calculation_kwargs[index], {
"a": 2 * x,
"b": y + 1})
113 self.assertEqual(all_calculation_kwargs[index],
None)
115 if __name__ ==
"__main__":