solve( [ [-1, 1], [1, 1], [1, -4], ], [8, -3, 2], [1, 3] ), 0.01 ); } public function testSimplexBasicFeasible() : void { $simplex = new Simplex(); self::assertEqualsWithDelta( [ [1.0, 0.0, 0.0, 0.0], 5.0 ], $simplex->solve( [ [-1, 1], [-2, -1], ], [1, 2], [5, -3] ), 0.0 ); } public function testSimplexLPInfeasible() : void { $simplex = new Simplex(); self::assertEquals( [ [-2, -2, -2, -2, -2], \INF ], $simplex->solve( [ [-1, -1], [2, 2], ], [2, -10], [3, -2] ) ); } public function testSimplexLPUnbound() : void { $simplex = new Simplex(); self::assertEqualsWithDelta( [ [-1, -1, -1, -1], \INF ], $simplex->solve( [ [2, -1], [1, 2], ], [-1, -2], [1, -1] ), 0.01 ); } }