public function testToArray()
{
$os = new Os();
$this->assertEquals([], $os->toArray());
$os->set(['name' => '']);
$this->assertEquals([], $os->toArray());
$os->reset(['name' => 'iOS', 'version' => new Version(['value' => '8.0'])]);
$this->assertEquals(['name' => 'iOS', 'version' => '8.0'], $os->toArray());
$os->reset(['name' => 'iOS', 'alias' => 'iPhone OS', 'version' => new Version(['value' => '3.0'])]);
$this->assertEquals(['name' => 'iOS', 'alias' => 'iPhone OS', 'version' => '3.0'], $os->toArray());
$os->reset(['name' => 'OS X', 'version' => new Version(['value' => '10.11', 'nickname' => 'El Capitan'])]);
$this->assertEquals(['name' => 'OS X', 'version' => ['value' => '10.11', 'nickname' => 'El Capitan']], $os->toArray());
$os->reset(['name' => 'Windows', 'version' => new Version(['value' => '5.1', 'alias' => 'XP'])]);
$this->assertEquals(['name' => 'Windows', 'version' => ['value' => '5.1', 'alias' => 'XP']], $os->toArray());
$os->reset(['name' => 'FireOS', 'family' => new Family(['name' => 'Android'])]);
$this->assertEquals(['name' => 'FireOS', 'family' => 'Android'], $os->toArray());
}