2, 'epsilon' => 2, 'epsilon:theta' => 0, 'beta' => 4, 'beta:theta' => 2, 'beta:epsilon' => 2, 'beta:epsilon:theta' => 0, 'alpha' => 4, 'alpha:theta' => 2, 'alpha:epsilon' => 2, 'alpha:epsilon:theta' => 0, 'alpha:beta' => 4, 'alpha:beta:theta' => 2, 'alpha:beta:epsilon' => 2, 'alpha:beta:epsilon:theta' => 0, ], Apriori::apriori([ ['alpha', 'beta', 'epsilon'], ['alpha', 'beta', 'theta'], ['alpha', 'beta', 'epsilon'], ['alpha', 'beta', 'theta'], ]) ); self::assertEquals( [], Apriori::apriori([ [1, 2, 3, 4], [1, 2, 4], [1, 2], [2, 3, 4], [3, 4], [2, 4], ]) ); } public function testAprioriSubset() : void { self::assertEquals( ['beta:theta' => 2], Apriori::apriori( [ ['alpha', 'beta', 'epsilon'], ['alpha', 'beta', 'theta'], ['alpha', 'beta', 'epsilon'], ['alpha', 'beta', 'theta'], ], ['beta', 'theta'] ) ); self::assertEquals( ['2:3' => 2], Apriori::apriori( [ [1, 2, 3, 4], [1, 2, 4], [1, 2], [2, 3, 4], [3, 4], [2, 4], ], [2, 3] ) ); } }