removed unnecessary header includes
[pazpar2-moved-to-github.git] / src / test_relevance.c
index e9c5b1a..ec393f3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: test_relevance.c,v 1.2 2007-04-17 13:30:24 marc Exp $
+/* $Id: test_relevance.c,v 1.9 2007-04-25 07:00:33 marc Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -19,17 +19,6 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 02111-1307, USA.
  */
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <signal.h>
-#include <ctype.h>
-#include <assert.h>
-
 #if HAVE_CONFIG_H
 #include "cconfig.h"
 #endif
@@ -42,14 +31,10 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <yaz/test.h>
 
 
-//#include "pazpar2.h"
+#include "config.h"
 #include "relevance.h"
-
-
-
-
-
-
+#include "record.h"
+#include "reclists.h"
 
 
 void test_relevance(int argc, char **argv)
@@ -61,72 +46,95 @@ void test_relevance(int argc, char **argv)
       {"abe", "fisk", 0};
   //    {"ål", "økologi", "æble", 0};
 
-  struct record_cluster *cluster = 0;
-  struct conf_service service; 
+  //struct record_cluster *cluster = 0;
+  struct conf_service *service = 0; 
   struct reclist *list = 0;
   struct record *record = 0;
-  const char *mergekey = "amergekey";
-  int total = 0;
+  //const char *mergekey = "amergekey";
+  //int total = 0;
 
   struct relevance *rel = 0;
+  //struct client *client = 0;
+  
 
   rel = relevance_create(nmem, queryterms, numrecs);
+  YAZ_CHECK(rel);
+  
   list = reclist_create(nmem, numrecs);
+  YAZ_CHECK(list);
+
+  service =  conf_service_create(nmem, 4, 3);
+  YAZ_CHECK(service);
+
+  YAZ_CHECK(conf_service_add_metadata(nmem, service, 0, "title",
+                            Metadata_type_generic, Metadata_merge_unique,
+                            1, 1, 1, 0));
+
+  YAZ_CHECK(conf_service_add_metadata(nmem, service, 1, "author",
+                            Metadata_type_generic, Metadata_merge_longest,
+                            1, 1, 1, 0));
+
+  YAZ_CHECK(conf_service_add_metadata(nmem, service, 2, "isbn",
+                            Metadata_type_number, Metadata_merge_no,
+                            1, 1, 1, 0));
+
+  YAZ_CHECK(conf_service_add_metadata(nmem, service, 3, "year",
+                            Metadata_type_year, Metadata_merge_range,
+                            1, 1, 1, 0));
+
+  YAZ_CHECK(conf_service_add_sortkey(nmem, service, 0, "relevance",
+                                     Metadata_sortkey_relevance));
+
+  YAZ_CHECK(conf_service_add_sortkey(nmem, service, 1, "title",
+                                     Metadata_sortkey_string));
+  
+  YAZ_CHECK(conf_service_add_sortkey(nmem, service, 2, "year",
+                                     Metadata_sortkey_numeric));
+  
+
+
+
+  // testing record things
+  record = record_create(nmem, 4, 3);
+  YAZ_CHECK(record);
+
+  // why on earth do we have a client dangeling from the record ??
+  // record->client = client;
+
+  char * bla = "blabla";
+  union data_types data_text;
+  data_text.text = bla;
+
+  
+  union data_types data_num;
+  data_num.number.min = 2;
+  data_num.number.max = 5;
+
+  struct record_metadata * tmp_md = 0;
+  tmp_md = record_metadata_insert(nmem, &(record->metadata[0]), data_text);
+  YAZ_CHECK(tmp_md);
+  tmp_md = record_metadata_insert(nmem, &tmp_md, data_text);
+  YAZ_CHECK(tmp_md);
+
+  YAZ_CHECK(record_add_metadata_field_id(nmem, record, 3, data_num));
+  YAZ_CHECK(record_add_metadata_field_id(nmem, record, 3, data_num));
+
+  YAZ_CHECK(record_add_metadata(nmem, record, service, "author", data_text));
+  YAZ_CHECK(record_add_metadata(nmem, record, service, "author", data_text));
+
+
+  YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 0, data_text));
+  YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 1, data_text));
+  YAZ_CHECK(record_assign_sortkey_field_id(nmem, record, 2, data_num));
+
+  YAZ_CHECK(record_assign_sortkey(nmem, record, service, "relevance", data_text));
+  YAZ_CHECK(record_assign_sortkey(nmem, record, service, "title", data_text));
+  YAZ_CHECK(record_assign_sortkey(nmem, record, service, "year", data_num));
+
+   
+   
+
 
-  // setting up service - sic!
-  // this should have been done by a nice service_create function !!!
-
-  service.num_metadata = 1;
-  service.metadata = 0;
-  service.num_sortkeys = 0;
-  service.sortkeys = 0;
-  if (service.num_metadata)
-      service.metadata 
-          = nmem_malloc(nmem, 
-                        sizeof(struct conf_metadata) * service.num_metadata);
-  else
-      service.metadata = 0;
-  service.metadata->name = nmem_strdup(nmem, "aname");
-  //service.metadata->brief = 1;
-  //service.metadata->termlist = 1;
-  //service.metadata->rank = 1;
-  //service.metadata->type = Metadata_type_generic;
-  //service.metadata->type = Metadata_type_year;
-  //service.metadata->merge = Metadata_merge_no;
-  //service.metadata->merge = Metadata_merge_unique;
-  //service.metadata->merge = Metadata_merge_longest;
-  //service.metadata->merge = Metadata_merge_range;
-  //service.metadata->merge = Metadata_merge_all;
-
-
-  if (service.num_sortkeys)
-      service.sortkeys 
-          = nmem_malloc(nmem, 
-                        sizeof(struct conf_sortkey) * service.num_sortkeys);
-  else
-      service.sortkeys = 0;
-  // service.sortkeys.type = Metadata_sortkey_numeric;
-  // service.sortkeys.type = Metadata_sortkey_skiparticle;
-  // service.sortkeys.name = service.metadata->name;
-  //service.metadata->sortkey_offset = sk_node;
-
-
-
-  // preparing one record
-  // this should have been done by a nice record_create function
-  // why the heck does the record know which client it belongs to ?? 
-
-  record = nmem_malloc(nmem, sizeof(struct record));
-  record->next = 0;
-  // which client should I use for record->client = cl;  ??
-  record->client = 0;
-  // and which sortkeys data_types list should I use ??
-  record->sortkeys = 0;
-  record->metadata 
-      = nmem_malloc(nmem, 
-                    sizeof(struct record_metadata*) * service.num_metadata);
-  memset(record->metadata, 0, 
-         sizeof(struct record_metadata*) * service.num_metadata);
 
 
   // now we need to put some actual data into the record ... how ??
@@ -254,12 +262,11 @@ void test_relevance(int argc, char **argv)
   //normalize_mergekey((char *) mergekey_norm, 0);
 
 
+#if 0
   // insert one record into recordlist/cluster - what's a cluster, exactly??
-  cluster = reclist_insert(list, &service, record, (char *)mergekey, &total);
-
-
+  cluster = reclist_insert(list, service, record, (char *)mergekey, &total);
   relevance_newrec(rel, cluster);
-
+#endif
 
 
 
@@ -271,15 +278,14 @@ void test_relevance(int argc, char **argv)
 
   //relevance_donerecord(rel, cluster);
   // relevance_countwords(se->rel, cluster, 
-  //                                   (char *) value, service.metadata->rank);
+  //                                   (char *) value, service->metadata->rank);
   //      
 
 
   nmem_destroy(nmem);
 
-  YAZ_CHECK(0 == 0);
-  YAZ_CHECK_EQ(0, 1);
-
+  //YAZ_CHECK(0 == 0);
+  //YAZ_CHECK_EQ(0, 1);
 }