Ejemplo n.º 1
0
 public function testFindCycle()
 {
     $nodes = [1, 2, 3, 4];
     $model = new \Magento\Framework\Data\Graph($nodes, [[1, 2], [2, 3], [3, 4]]);
     $this->assertEquals([], $model->findCycle());
     $model = new \Magento\Framework\Data\Graph($nodes, [[1, 2], [2, 3], [3, 4], [4, 2]]);
     $this->assertEquals([], $model->findCycle(1));
     $cycle = $model->findCycle();
     sort($cycle);
     $this->assertEquals([2, 2, 3, 4], $cycle);
     $this->assertEquals([3, 4, 2, 3], $model->findCycle(3));
     $model = new \Magento\Framework\Data\Graph($nodes, [[1, 2], [2, 3], [3, 4], [4, 2], [3, 1]]);
     //find cycles for each node
     $cycles = $model->findCycle(null, false);
     $this->assertEquals([[1, 2, 3, 1], [2, 3, 4, 2], [3, 4, 2, 3], [4, 2, 3, 4]], $cycles);
 }
Ejemplo n.º 2
0
 public function testFindCycle()
 {
     $nodes = array(1, 2, 3, 4);
     $model = new \Magento\Framework\Data\Graph($nodes, array(array(1, 2), array(2, 3), array(3, 4)));
     $this->assertEquals(array(), $model->findCycle());
     $model = new \Magento\Framework\Data\Graph($nodes, array(array(1, 2), array(2, 3), array(3, 4), array(4, 2)));
     $this->assertEquals(array(), $model->findCycle(1));
     $cycle = $model->findCycle();
     sort($cycle);
     $this->assertEquals(array(2, 2, 3, 4), $cycle);
     $this->assertEquals(array(3, 4, 2, 3), $model->findCycle(3));
     $model = new \Magento\Framework\Data\Graph($nodes, array(array(1, 2), array(2, 3), array(3, 4), array(4, 2), array(3, 1)));
     //find cycles for each node
     $cycles = $model->findCycle(null, false);
     $this->assertEquals(array(array(1, 2, 3, 1), array(2, 3, 4, 2), array(3, 4, 2, 3), array(4, 2, 3, 4)), $cycles);
 }