public function testSub()
 {
     $d1 = new Duration('PT2S');
     $d2 = new Duration('PT1S');
     $d1->sub($d2);
     $this->assertEquals('PT1S', $d1->__toString());
     $d1 = new Duration('PT2S');
     $d2 = new Duration('PT4S');
     $d1->sub($d2);
     $this->assertEquals('PT0S', $d1->__toString());
     $d1 = new Duration('P1DT2H25M30S');
     $d2 = new Duration('P1DT2H');
     $d1->sub($d2);
     $this->assertEquals('PT25M30S', $d1->__toString());
     $d1 = new Duration('PT20S');
     $d2 = new Duration('PT20S');
     $d1->sub($d2);
     $this->assertEquals('PT0S', $d1->__toString());
     $d1 = new Duration('PT20S');
     $d2 = new Duration('PT21S');
     $d1->sub($d2);
     $this->assertTrue($d1->isNegative());
 }