/**
* Tests if the ouput of `compose()` can be used as the input for `decompose()`
* and vice versa.
*
* @return void
*/
public function testComposeDecomposeCompose()
{
$data = array('language' => 'en');
$expected = 'en';
$result = Locale::compose(Locale::decompose(Locale::compose($data)));
$this->assertEqual($expected, $result);
$data = array('language' => 'en', 'territory' => 'US');
$expected = 'en_US';
$result = Locale::compose(Locale::decompose(Locale::compose($data)));
$this->assertEqual($expected, $result);
$data = array('language' => 'zh', 'script' => 'Hans', 'territory' => 'HK', 'variant' => 'REVISED');
$expected = 'zh_Hans_HK_REVISED';
$result = Locale::compose(Locale::decompose(Locale::compose($data)));
$this->assertEqual($expected, $result);
}