/**
  * @dataProvider instanceProvider
  * @param HashArray $array
  */
 public function testGetHash(HashArray $array)
 {
     $hash = $array->getHash();
     $this->assertEquals($hash, $array->getHash());
     $elements = $this->elementInstancesProvider();
     $element = array_shift($elements);
     $element = $element[0][0];
     $array->addElement($element);
     $newHash = $array->getHash();
     $this->assertNotSame($hash, $newHash, 'Hash should not be the same after adding an element');
     $array->addElement($element);
     $this->assertNotSame($newHash, $array->getHash(), 'Hash should not be the same after adding an existing element again');
 }
 /**
  * @dataProvider instanceProvider
  * @param HashArray $array
  */
 public function testGetHash(HashArray $array)
 {
     $hash = $array->getHash();
     $this->assertSame($hash, $array->getHash());
     $elements = $this->elementInstancesProvider();
     $element = array_shift($elements);
     $element = $element[0][0];
     $array->addElement($element);
     if ($array->hasElement($element)) {
         $this->assertSame($hash, $array->getHash());
     } else {
         $this->assertNotSame($hash, $array->getHash());
     }
 }