public function testAppendOutcomeDeclarationToTest()
 {
     $doc = new XmlDocument();
     $doc->load(self::samplesDir() . 'no-categories.xml');
     TestCategoryRulesUtils::appendOutcomeDeclarationToTest($doc->getDocumentComponent(), 'TEST', BaseType::FLOAT, 0.0);
     $outcome = $doc->getDocumentComponent()->getComponentByIdentifier('TEST');
     $this->assertInstanceOf('qtism\\data\\state\\OutcomeDeclaration', $outcome);
     $this->assertCount(1, $doc->getDocumentComponent()->getComponentsByClassName('outcomeDeclaration'));
     $this->assertEquals(Cardinality::SINGLE, $outcome->getCardinality());
     $this->assertEquals(BaseType::FLOAT, $outcome->getBaseType());
     $this->assertEquals('TEST', $outcome->getIdentifier());
     $defaultValue = $outcome->getDefaultValue();
     $this->assertInstanceOf('qtism\\data\\state\\DefaultValue', $defaultValue);
     $values = $defaultValue->getValues();
     $this->assertCount(1, $values);
     $this->assertEquals(0.0, $values[0]->getValue());
     // Check that there is no duplicate if we add the same variable twice...
     TestCategoryRulesUtils::appendOutcomeDeclarationToTest($doc->getDocumentComponent(), 'TEST', BaseType::FLOAT, 0.0);
     $outcome = $doc->getDocumentComponent()->getComponentByIdentifier('TEST');
     $this->assertInstanceOf('qtism\\data\\state\\OutcomeDeclaration', $outcome);
     $this->assertEquals(1, count($doc->getDocumentComponent()->getComponentsByClassName('outcomeDeclaration')));
 }