]>
gitweb.michael.orlitzky.com - dead/census-tools.git/blob - SimplexIterationTest.py
1d616a022cc2490c77372c784790977a0614ac01
3 import LinearProgramming
6 class SimplexIterationTest(unittest
.TestCase
):
8 def testSolutionVectorUnchanged(self
):
9 sm
= LinearProgramming
.SimplexIteration()
10 sm
.solution_vector
= [1,2,3,4,5]
11 self
.assertTrue(sm
.solution_vector
== [1,2,3,4,5])
14 def testBasicVariables(self
):
15 sm
= LinearProgramming
.SimplexIteration()
16 sm
.solution_vector
= [0,1,0,1,0,1]
17 sm
.basic_variables
= "x1, x2, x3,x4,x5 "
18 self
.assertTrue("x1" in sm
.basic_variables
)
19 self
.assertTrue("x2" in sm
.basic_variables
)
20 self
.assertTrue("x3" in sm
.basic_variables
)
21 self
.assertTrue("x4" in sm
.basic_variables
)
22 self
.assertTrue("x5" in sm
.basic_variables
)
25 def testNonBasicVariables(self
):
26 sm
= LinearProgramming
.SimplexIteration()
27 sm
.solution_vector
= [1,0,0,4,5,6]
28 sm
.basic_indices
= [0,3,4,5]
29 self
.assertTrue("x2" in sm
.nonbasic_variables
)
30 self
.assertTrue("x3" in sm
.nonbasic_variables
)
33 def testBasisMatrix(self
):
34 sm
= LinearProgramming
.SimplexIteration()
36 sm
.solution_vector
= [1, 0, 1, 1, 1, 0, 0, 1]
37 sm
.basic_variables
= "x1,x3,x4,x5,x8"
39 sm
.constraint_matrix
= [ [1, 1, 1, 0, 0, 0, 1, 0],
40 [0, 0, 0, 1, 1, 1, 0, 1],
41 [1, 0, 0, 1, 0, 0, 0, 0],
42 [0, 1, 0, 0, 1, 0, 0, 0],
43 [0, 0, 1, 0, 0, 1, 0, 0] ]
45 expected_basis_matrix
= [ [1, 1, 0, 0, 0],
51 self
.assertTrue(sm
.basis_matrix() == expected_basis_matrix
)
54 def testOptimal(self
):
55 sm
= LinearProgramming
.SimplexIteration()
56 sm
.objective_coefficients
= [ 5, 100, 30, 10, 20, 300, 0, 0 ]
57 sm
.solution_vector
= [300, 0, 200, 100, 300, 0, 0, 200]
58 sm
.basic_variables
= "x1,x3,x4,x5,x8"
60 sm
.constraint_matrix
= [ [1, 1, 1, 0, 0, 0, 1, 0],
61 [0, 0, 0, 1, 1, 1, 0, 1],
62 [1, 0, 0, 1, 0, 0, 0, 0],
63 [0, 1, 0, 0, 1, 0, 0, 0],
64 [0, 0, 1, 0, 0, 1, 0, 0] ]
66 self
.assertTrue(sm
.optimal
)
69 def testNonOptimal(self
):
70 sm
= LinearProgramming
.SimplexIteration()
71 sm
.objective_coefficients
= [ 5, 100, 30, 10, 20, 300, 0, 0 ]
72 sm
.solution_vector
= [0, 100, 200, 400, 200, 0, 200, 0]
73 sm
.basic_variables
= "x2,x3,x4,x5,x7"
75 sm
.constraint_matrix
= [ [1, 1, 1, 0, 0, 0, 1, 0],
76 [0, 0, 0, 1, 1, 1, 0, 1],
77 [1, 0, 0, 1, 0, 0, 0, 0],
78 [0, 1, 0, 0, 1, 0, 0, 0],
79 [0, 0, 1, 0, 0, 1, 0, 0] ]
81 self
.assertTrue(not sm
.optimal
)
85 suite
= unittest
.TestSuite()
86 suite
.addTest(unittest
.makeSuite(SimplexIterationTest
))