--- /dev/null
+<?php
+
+require_once ("../Spyc.php");
+
+function roundTrip($a) { return Spyc::YAMLLoad(Spyc::YAMLDump(array('x' => $a))); }
+
+
+class RoundTripTest extends PHPUnit_Framework_TestCase {
+
+ protected function setUp() {
+ }
+
+ public function testNull() {
+ $this->assertEquals (array ('x' => null), roundTrip (null));
+ }
+
+ public function testY() {
+ $this->assertEquals (array ('x' => 'y'), roundTrip ('y'));
+ }
+
+ public function testExclam() {
+ $this->assertEquals (array ('x' => '!yeah'), roundTrip ('!yeah'));
+ }
+
+ public function test5() {
+ $this->assertEquals (array ('x' => '5'), roundTrip ('5'));
+ }
+
+ public function testSpaces() {
+ $this->assertEquals (array ('x' => 'x '), roundTrip ('x '));
+ }
+
+ public function testApostrophes() {
+ $this->assertEquals (array ('x' => "'biz'"), roundTrip ("'biz'"));
+ }
+
+ public function testNewLines() {
+ $this->assertEquals (array ('x' => "\n"), roundTrip ("\n"));
+ }
+
+ public function testHashes() {
+ $this->assertEquals (array ('x' => array ("#color" => '#fff')), roundTrip (array ("#color" => '#fff')));
+ }
+
+ public function testPreserveString() {
+ $result1 = roundTrip ('0');
+ $result2 = roundTrip ('true');
+ $this->assertTrue (is_string ($result1['x']));
+ $this->assertTrue (is_string ($result2['x']));
+ }
+
+ public function testPreserveBool() {
+ $result = roundTrip (true);
+ $this->assertTrue (is_bool ($result['x']));
+ }
+
+ public function testPreserveInteger() {
+ $result = roundTrip (0);
+ $this->assertTrue (is_int ($result['x']));
+ }
+
+ public function testWordWrap() {
+ $this->assertEquals (array ('x' => "aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"), roundTrip ("aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"));
+ }
+
+ public function testABCD() {
+ $this->assertEquals (array ('a', 'b', 'c', 'd'), Spyc::YAMLLoad(Spyc::YAMLDump(array('a', 'b', 'c', 'd'))));
+ }
+
+ public function testABCD2() {
+ $a = array('a', 'b', 'c', 'd'); // Create a simple list
+ $b = Spyc::YAMLDump($a); // Dump the list as YAML
+ $c = Spyc::YAMLLoad($b); // Load the dumped YAML
+ $d = Spyc::YAMLDump($c); // Re-dump the data
+ $this->assertSame($b, $d);
+ }
+
+}