NsplTest\RndTest::testSample PHP Метод

testSample() публичный Метод

public testSample ( )
    public function testSample()
    {
        $list = ['a', 'b', 'c', 'd', 'e'];
        $this->assertTrue(isList(sample($list, 3)));
        $iterator = new \ArrayIterator($list);
        $this->assertTrue(isList(sample($iterator, 3)));
        foreach (sample($iterator, 3) as $item) {
            $this->assertTrue(in_array($item, $list));
        }
        $sample = sample($list, 3, true);
        foreach ($sample as $k => $element) {
            $this->assertTrue($list[$k] === $element);
        }
        $this->assertEquals([], sample(['a', 'b', 'c'], 0));
        $appearances = array_fill_keys($list, 0);
        for ($i = 0; $i < 50000; ++$i) {
            $sample = sample($list, 3);
            foreach ($sample as $item) {
                ++$appearances[$item];
            }
        }
        foreach ($appearances as $item => $rate) {
            $this->assertEquals(30000, $rate, '', 500);
        }
    }