assets.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #ifndef _TEST_ASSETS_H
  2. #define _TEST_ASSETS_H
  3. #include "triple.h"
  4. #define NUM_TRP 10
  5. LSUP_Triple *create_triples()
  6. {
  7. LSUP_Triple *trp;
  8. CRITICAL (trp = malloc (NUM_TRP * sizeof (LSUP_Triple)));
  9. // These constitute overall 10 individual triples, 8 unique.
  10. /*
  11. LSUP_uri_init (&terms[0][0], "urn:s:0");
  12. LSUP_uri_init (&terms[0][1], "urn:p:0");
  13. LSUP_uri_init (&terms[0][2], "urn:o:0");
  14. trp[0] = {terms[1][0], terms[1][1], terms[1][2]};
  15. LSUP_uri_init (&terms[1][0], "urn:s:1");
  16. LSUP_uri_init (&terms[1][1], "urn:p:1");
  17. LSUP_uri_init (&terms[1][2], "urn:o:1");
  18. trp[1] = {terms[1][0], terms[1][1], terms[1][2]};
  19. LSUP_uri_init (&terms[2][0], "urn:s:2");
  20. LSUP_uri_init (&terms[2][1], "urn:p:2");
  21. LSUP_uri_init (&terms[2][2], "urn:o:2");
  22. trp[2] = {terms[2][0], terms[2][1], terms[2][2]};
  23. LSUP_uri_init (&terms[3][0], "urn:s:0");
  24. LSUP_uri_init (&terms[3][1], "urn:p:1");
  25. LSUP_uri_init (&terms[3][2], "urn:o:2");
  26. trp[3] = {terms[3][0], terms[3][1], terms[3][2]};
  27. LSUP_uri_init (&terms[4][0], "urn:s:0");
  28. LSUP_uri_init (&terms[4][1], "urn:p:2");
  29. LSUP_term_init (&terms[4][2], LSUP_TERM_LITERAL, "String 1", NULL, NULL);
  30. trp[4] = {terms[4][0], terms[4][1], terms[4][2]};
  31. LSUP_uri_init (&terms[5][0], "urn:s:0");
  32. LSUP_uri_init (&terms[5][1], "urn:p:5");
  33. LSUP_term_init(
  34. &terms[5][2], LSUP_TERM_LITERAL, "String 1", "xsd:string", NULL);
  35. trp[5] = {terms[5][0], terms[5][1], terms[5][2]};
  36. LSUP_uri_init (&terms[6][0], "urn:s:1");
  37. LSUP_uri_init (&terms[6][1], "urn:p:6");
  38. LSUP_term_init(
  39. &terms[6][2], LSUP_TERM_LITERAL, "String 1", "xsd:string", "es-ES");
  40. trp[6] = {terms[6][0], terms[6][1], terms[6][2]};
  41. */
  42. trp[0].s = LSUP_uri_new ("urn:s:0"),
  43. trp[0].p = LSUP_uri_new ("urn:p:0"),
  44. trp[0].o = LSUP_uri_new ("urn:o:0"),
  45. trp[1].s = LSUP_uri_new ("urn:s:1");
  46. trp[1].p = LSUP_uri_new ("urn:p:1");
  47. trp[1].o = LSUP_uri_new ("urn:o:1");
  48. trp[2].s = LSUP_uri_new ("urn:s:2");
  49. trp[2].p = LSUP_uri_new ("urn:p:2");
  50. trp[2].o = LSUP_uri_new ("urn:o:2");
  51. trp[3].s = LSUP_uri_new ("urn:s:0");
  52. trp[3].p = LSUP_uri_new ("urn:p:1");
  53. trp[3].o = LSUP_uri_new ("urn:o:2");
  54. trp[4].s = LSUP_uri_new ("urn:s:0");
  55. trp[4].p = LSUP_uri_new ("urn:p:2");
  56. trp[4].o = LSUP_term_new (LSUP_TERM_LITERAL, "String 1", NULL, NULL);
  57. trp[5].s = LSUP_uri_new ("urn:s:0");
  58. trp[5].p = LSUP_uri_new ("urn:p:5");
  59. trp[5].o = LSUP_term_new(
  60. LSUP_TERM_LITERAL, "String 1", "xsd:string", NULL);
  61. trp[6].s = LSUP_uri_new ("urn:s:1");
  62. trp[6].p = LSUP_uri_new ("urn:p:6");
  63. trp[6].o = LSUP_term_new(
  64. LSUP_TERM_LITERAL, "String 1", "xsd:string", "es-ES");
  65. // Unique triple from reused pointers. Do not double-free.
  66. trp[7].s = trp[0].s; // <urn:s:0>
  67. trp[7].p = trp[2].p; // <urn:p:2>
  68. trp[7].o = trp[5].o; // "String 1"^^xsd:string
  69. // Duplicate of trp[7]. Do not double-free.
  70. trp[8].s = trp[0].s;
  71. trp[8].p = trp[2].p;
  72. trp[8].o = trp[5].o;
  73. // Duplicate of trp[7] from different pointers with same value.
  74. // Do not double-free.
  75. trp[9].s = trp[5].s;
  76. trp[9].p = trp[4].p;
  77. trp[9].o = trp[5].o;
  78. return trp;
  79. }
  80. void free_triples (LSUP_Triple *trp)
  81. {
  82. // Last three triples are second pointers.
  83. for (int i=0; i < NUM_TRP - 3; i++) {
  84. LSUP_term_free (trp[i].s);
  85. LSUP_term_free (trp[i].p);
  86. LSUP_term_free (trp[i].o);
  87. }
  88. free (trp);
  89. }
  90. #endif