18fff22dc84d2663da43498878b04c7696dd6bfc
kent
  Thu Aug 28 13:08:31 2014 -0700
Updating tests
diff --git src/oneShot/hacTreeTest/hacTreeTest.c src/oneShot/hacTreeTest/hacTreeTest.c
index 942445e..a666892 100644
--- src/oneShot/hacTreeTest/hacTreeTest.c
+++ src/oneShot/hacTreeTest/hacTreeTest.c
@@ -1,118 +1,114 @@
 /* hacTreeTest - Test out various hacTree code. */
 
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "options.h"
 #include "hacTree.h"
 #include "pthreadDoList.h"
 
 char* clHacTree = "fromItems";
 int clThreads = 10;
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "hacTreeTest - Test out various hacTree code\n"
   "usage:\n"
   "   hacTreeTest XXX\n"
   "options:\n"
-  "   -hacTree = Dictates how the tree is generated;  multiThreads or costlyMerges or fromItems. fromItems is default \n"
+  "   -hacTree = Dictates how the tree is generated;  multiThreads or fromItems. fromItems is default \n"
   "   -threads - number of threads to use for multiThread default %d\n"
   , clThreads
   );
 }
 
 /* Command line validation table. */
 static struct optionSpec options[] = {
    {"threads", OPTION_INT},
    {"hacTree", OPTION_STRING},
    {NULL, 0},
 };
 
 void rDump(struct hacTree *ht, int level, FILE *f)
 /* Help dump out results */
 {
 spaceOut(f, level*2);
 struct slDouble *el = (struct slDouble *)ht->itemOrCluster;
 if (ht->left || ht->right)
     {
     fprintf(f, "(%g %g)\n", el->val, ht->childDistance);
     rDump(ht->left, level+1, f);
     rDump(ht->right, level+1, f);
     }
 else
     fprintf(f, "%g\n", el->val);
 }
 
 double dblDistance(const struct slList *item1, const struct slList *item2, void *extraData)
 {
 struct slDouble *i1 = (struct slDouble *)item1;
 struct slDouble *i2 = (struct slDouble *)item2;
 double d = fabs(i1->val - i2->val);
 verbose(2, "dblDistance %g %g = %g\n", i1->val, i2->val, d);
 return d;
 }
 
 struct slList *dblMerge(const struct slList *item1, const struct slList *item2, 
     void *extraData)
 {
 struct slDouble *i1 = (struct slDouble *)item1;
 struct slDouble *i2 = (struct slDouble *)item2;
 double d = 0.5 * (i1->val + i2->val);
 verbose(2, "dblMerge %g %g = %g\n", i1->val, i2->val, d);
 return (struct slList *)slDoubleNew(d);
 }
 
 void hacTreeTest(char *output)
 /* hacTreeTest - Test out various hacTree code. */
 {
 FILE *f = mustOpen(output, "w");
 int i;
 
 /* Make up list of random numbers */
 struct slDouble *list = NULL;
 double data[] = {1,2, 4,5,  6,7,  11,15,  22,24};
 for (i=0; i<10; ++i)
     {
     struct slDouble *el = slDoubleNew(data[i]);
     slAddHead(&list, el);
     }
 struct lm *lm = lmInit(0);
 struct hacTree *ht = NULL;
 
 if (sameString(clHacTree, "multiThreads"))
     {
     ht = hacTreeMultiThread(clThreads, (struct slList *)list, lm, dblDistance, dblMerge, 
 	NULL, NULL);
     }
-else if (sameString(clHacTree, "costlyMerges"))
-    {
-    ht = hacTreeForCostlyMerges((struct slList *)list, lm, dblDistance, dblMerge, NULL);
-    }
 else if (sameString(clHacTree, "fromItems"))
     {
     ht = hacTreeFromItems((struct slList *)list, lm, dblDistance, dblMerge, NULL, NULL);
     }
 else 
     {
     uglyAbort("Unrecognized input option: %s", clHacTree);
     }
 rDump(ht, 0, f);
 carefulClose(&f);
 }
 
 
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 2)
     usage();
 clHacTree = optionVal("hacTree", clHacTree);
 clThreads = optionInt("threads", clThreads);
 hacTreeTest(argv[1]);
 return 0;
 }