///
/// @file TestRDFAnnotation2.cs
/// @brief fomula units data unit tests
/// @author Frank Bergmann (Csharp conversion)
/// @author Akiya Jouraku (Csharp conversion)
/// @author Ben Bornstein
///
/// $Id: TestRDFAnnotation2.cs 9830 2009-07-17 18:35:36Z ajouraku $
/// $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/trunk/libsbml/src/bindings/csharp/test/annotation/TestRDFAnnotation2.cs $
///
/// This test file was converted from src/sbml/test/TestRDFAnnotation2.cpp
/// with the help of conversion sciprt (ctest_converter.pl).
///
/// */
namespace LibSBMLCSTest {
using libsbml;
using System.IO;
public class TestRDFAnnotation2 {
public class AssertionError : System.Exception
{
public AssertionError() : base()
{
}
}
static void assertTrue(bool condition)
{
if (condition == true)
{
return;
}
throw new AssertionError();
}
static void assertEquals(object a, object b)
{
if ( (a == null) && (b == null) )
{
return;
}
else if (a.Equals(b))
{
return;
}
throw new AssertionError();
}
static void assertNotEquals(object a, object b)
{
if ( (a == null) && (b == null) )
{
throw new AssertionError();
}
else if (a.Equals(b))
{
throw new AssertionError();
}
}
static void assertEquals(bool a, bool b)
{
if ( a == b )
{
return;
}
throw new AssertionError();
}
static void assertNotEquals(bool a, bool b)
{
if ( a != b )
{
return;
}
throw new AssertionError();
}
static void assertEquals(int a, int b)
{
if ( a == b )
{
return;
}
throw new AssertionError();
}
static void assertNotEquals(int a, int b)
{
if ( a != b )
{
return;
}
throw new AssertionError();
}
private Model m2;
private XMLOutputStream XOS2;
private OStringStream OSS2;
private SBMLDocument d2;
public bool equals(string s)
{
return s == OSS2.str();
}
public void setUp()
{
OSS2 = new OStringStream();
XOS2 = new XMLOutputStream(OSS2);
string filename = "../../annotation/test/test-data/annotation2.xml";
d2 = libsbml.readSBML(filename);
m2 = d2.getModel();
}
public void tearDown()
{
}
public void test_RDFAnnotation2_getModelHistory()
{
ModelHistory history = m2.getModelHistory();
assertTrue( history != null );
ModelCreator mc = history.getCreator(0);
assertTrue(( "Hucka" == mc.getFamilyName() ));
assertTrue(( "Mike" == mc.getGivenName() ));
assertTrue(( "mhucka@caltech.edu" == mc.getEmail() ));
assertTrue(( "BNMC" == mc.getOrganisation() ));
ModelCreator mc1 = history.getCreator(1);
assertTrue(( "Keating" == mc1.getFamilyName() ));
assertTrue(( "Sarah" == mc1.getGivenName() ));
assertTrue(( "skeating@caltech.edu" == mc1.getEmail() ));
assertTrue(( "UH" == mc1.getOrganisation() ));
Date date = history.getCreatedDate();
assertTrue( date.getYear() == 2005 );
assertTrue( date.getMonth() == 2 );
assertTrue( date.getDay() == 2 );
assertTrue( date.getHour() == 14 );
assertTrue( date.getMinute() == 56 );
assertTrue( date.getSecond() == 11 );
assertTrue( date.getSignOffset() == 0 );
assertTrue( date.getHoursOffset() == 0 );
assertTrue( date.getMinutesOffset() == 0 );
assertTrue(( "2005-02-02T14:56:11Z" == date.getDateAsString() ));
date = history.getModifiedDate();
assertTrue( date.getYear() == 2006 );
assertTrue( date.getMonth() == 5 );
assertTrue( date.getDay() == 30 );
assertTrue( date.getHour() == 10 );
assertTrue( date.getMinute() == 46 );
assertTrue( date.getSecond() == 2 );
assertTrue( date.getSignOffset() == 0 );
assertTrue( date.getHoursOffset() == 0 );
assertTrue( date.getMinutesOffset() == 0 );
assertTrue(( "2006-05-30T10:46:02Z" == date.getDateAsString() ));
date = history.getModifiedDate(1);
assertTrue( date.getYear() == 2007 );
assertTrue( date.getMonth() == 1 );
assertTrue( date.getDay() == 16 );
assertTrue( date.getHour() == 15 );
assertTrue( date.getMinute() == 31 );
assertTrue( date.getSecond() == 52 );
assertTrue( date.getSignOffset() == 0 );
assertTrue( date.getHoursOffset() == 0 );
assertTrue( date.getMinutesOffset() == 0 );
assertTrue(( "2007-01-16T15:31:52Z" == date.getDateAsString() ));
}
public void test_RDFAnnotation2_modelWithHistoryAndCVTerms()
{
ModelHistory h = new ModelHistory();
ModelCreator c = new ModelCreator();
c.setFamilyName("Keating");
c.setGivenName("Sarah");
h.addCreator(c);
m2.unsetModelHistory();
m2.setModelHistory(h);
CVTerm cv = new CVTerm();
cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER);
cv.setBiologicalQualifierType(libsbml.BQB_IS_VERSION_OF);
cv.addResource("http://www.geneontology.org/#GO:0005892");
m2.addCVTerm(cv);
XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2);
string expected = "\n" +
"\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" Keating\n" +
" Sarah\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
"";
Ann.write(XOS2);
assertEquals( true, equals(expected) );
}
public void test_RDFAnnotation2_modelWithHistoryAndMultipleModifiedDates()
{
ModelHistory h = new ModelHistory();
ModelCreator c = new ModelCreator();
c.setFamilyName("Keating");
c.setGivenName("Sarah");
h.addCreator(c);
Date d = new Date(2005,2,2,14,56,11);
h.setCreatedDate(d);
h.addModifiedDate(d);
h.addModifiedDate(d);
m2.unsetModelHistory();
m2.setModelHistory(h);
XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2);
string expected = "\n" +
"\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" Keating\n" +
" Sarah\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" 2005-02-02T14:56:11Z\n" +
" \n" +
" \n" +
" 2005-02-02T14:56:11Z\n" +
" \n" +
" \n" +
" 2005-02-02T14:56:11Z\n" +
" \n" +
" \n" +
" \n" +
"";
Ann.write(XOS2);
assertEquals( true, equals(expected) );
}
public void test_RDFAnnotation2_modelWithHistoryWithCharacterReference()
{
ModelHistory h = new ModelHistory();
ModelCreator c = new ModelCreator();
c.setFamilyName("Dräger");
c.setGivenName("Andreas");
h.addCreator(c);
m2.unsetModelHistory();
m2.setModelHistory(h);
XMLNode Ann = RDFAnnotationParser.parseModelHistory(m2);
string expected = "\n" +
"\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" Dräger\n" +
" Andreas\n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
" \n" +
"";
Ann.write(XOS2);
assertEquals( true, equals(expected) );
}
}
}