123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #include "test.h"
- static int test_term_new()
- {
- char *data = "hello";
- char *datatype = "urn:my:datatype";
- LSUP_Term *term = LSUP_term_new (LSUP_TERM_LITERAL, data, datatype);
- EXPECT_STR_EQ (term->data, data);
- EXPECT_STR_EQ (LSUP_tcache_get (term->datatype)->data, datatype);
- char *lang = "en-US";
- LSUP_term_init (term, LSUP_TERM_LT_LITERAL, data, lang);
- EXPECT_STR_EQ (term->data, data);
- EXPECT_STR_EQ (term->lang, lang);
- char *uri_data = "urn:id:2144564356";
- LSUP_uri_init (term, uri_data);
- EXPECT_STR_EQ (term->data, uri_data);
- LSUP_term_free (term);
- return 0;
- }
- static int test_term_serialize_deserialize()
- {
- LSUP_Term *uri = LSUP_uri_new ("http://hello.org");
- LSUP_Term *lit = LSUP_term_new (LSUP_TERM_LITERAL, "hello", NULL);
- LSUP_Term *tlit = LSUP_term_new (LSUP_TERM_LITERAL, "hello", "xsd:string");
- LSUP_Term *tllit = LSUP_term_new (LSUP_TERM_LT_LITERAL, "hello", "en-US");
- LSUP_Buffer *sterm;
- LSUP_Term *dsterm;
- sterm = LSUP_term_serialize (uri);
- ASSERT (sterm != NULL, "Error serializing term!");
- //log_info ("%s", "Serialized URI: ");
- //LSUP_buffer_print (sterm);
- //log_info ("%s", "\n");
- dsterm = LSUP_term_new_from_buffer (sterm);
- ASSERT (dsterm != NULL, "Error deserializing term!");
- ASSERT (LSUP_term_equals (dsterm, uri), "URI serialization error!");
- LSUP_term_free (uri);
- LSUP_buffer_free (sterm);
- LSUP_term_free (dsterm);
- sterm = LSUP_term_serialize (lit);
- ASSERT (sterm != NULL, "Error serializing term!");
- //log_info ("%s", "Serialized literal: ");
- //LSUP_buffer_print (sterm);
- //log_info ("%s", "\n");
- dsterm = LSUP_term_new_from_buffer (sterm);
- ASSERT (dsterm != NULL, "Error deserializing term!");
- ASSERT (LSUP_term_equals (dsterm, lit), "lit serialization error!");
- LSUP_term_free (lit);
- LSUP_buffer_free (sterm);
- LSUP_term_free (dsterm);
- sterm = LSUP_term_serialize (tlit);
- ASSERT (sterm != NULL, "Error serializing term!");
- //log_info ("%s", "Serialized typed literal: ");
- //LSUP_buffer_print (sterm);
- //log_info ("%s", "\n");
- dsterm = LSUP_term_new_from_buffer (sterm);
- ASSERT (dsterm != NULL, "Error deserializing term!");
- ASSERT (LSUP_term_equals (dsterm, tlit), "tlit serialization error!");
- LSUP_term_free (tlit);
- LSUP_buffer_free (sterm);
- LSUP_term_free (dsterm);
- sterm = LSUP_term_serialize (tllit);
- ASSERT (sterm != NULL, "Error serializing term!");
- //log_info ("%s", "Serialized typed and language-tagged URI: ");
- //LSUP_buffer_print (sterm);
- //log_info ("%s", "\n");
- dsterm = LSUP_term_new_from_buffer (sterm);
- ASSERT (dsterm != NULL, "Error deserializing term!");
- ASSERT (LSUP_term_equals (dsterm, tllit), "URI serialization error!");
- LSUP_term_free (tllit);
- LSUP_buffer_free (sterm);
- LSUP_term_free (dsterm);
- return 0;
- }
- static int test_term_to_key()
- {
- LSUP_Term *uri = LSUP_uri_new ("http://hello.org");
- LSUP_Term *lit = LSUP_term_new (LSUP_TERM_LITERAL, "hello", NULL);
- LSUP_Term *tlit = LSUP_term_new(LSUP_TERM_LITERAL, "hello", DEFAULT_DTYPE);
- LSUP_Term *tllit1 = LSUP_term_new(LSUP_TERM_LT_LITERAL, "hello", "en-US");
- LSUP_Term *tllit2 = LSUP_term_new(LSUP_TERM_LT_LITERAL, "hello", "en-GB");
- LSUP_Key uri_key = LSUP_term_hash (uri);
- LSUP_Key lit_key = LSUP_term_hash (lit);
- LSUP_Key tlit_key = LSUP_term_hash (tlit);
- LSUP_Key tllit1_key = LSUP_term_hash (tllit1);
- LSUP_Key tllit2_key = LSUP_term_hash (tllit2);
- ASSERT (uri_key != lit_key, "URI key conflict!");
- ASSERT (lit_key == tlit_key, "URI keys differ!");
- ASSERT (lit_key != tllit1_key, "URI key conflict!");
- ASSERT (tlit_key != tllit1_key, "URI key conflict!");
- ASSERT (tllit1_key != tllit2_key, "URI key conflict!");
- LSUP_term_free (uri);
- LSUP_term_free (lit);
- LSUP_term_free (tlit);
- LSUP_term_free (tllit1);
- LSUP_term_free (tllit2);
- return 0;
- }
- int term_tests() {
- RUN (test_term_new);
- RUN (test_term_serialize_deserialize);
- RUN (test_term_to_key);
- return 0;
- }
|