int plen = MAXPATHTESTS; int pbuf[MAXPATHTESTS];
int plen = MAXPATHLEN; int pbuf[MAXPATHLEN];
void testCLTree(void){#define RETRIES 1#define TREELEAFSIZE 4#define TREENODEWANTED (2*TREELEAFSIZE-2)#define MAXPATHTESTS 128  struct UnrootedBinary *ct = newUnrootedBinary(TREELEAFSIZE);  struct DoubleA *n = getTreeNodes(ct, NULL);  struct DoubleA *spm, *spmmap, *pp;  union PCTypes a, b;  int retval;  int psize;  int cur;  int i;	int plen = MAXPATHTESTS;	int pbuf[MAXPATHTESTS];//  struct DataBlock *dotdb;  assert(getSize(n) == TREENODEWANTED);  pp = getPerimeterPairs(ct, NULL);  assert(getSize(pp) == TREELEAFSIZE);  freeDoubleDoubler(pp);  spmmap = makeSPMMap(getAdjAdaptorForUB(ct));  for (i = 0; i < RETRIES; ++i) {    a = getRandomElement(n);    assert(a.i >= 0 && a.i < 100);    b = getRandomElement(n);    assert(b.i >= 0 && b.i < 100);    spm = makeSPMFor(getAdjAdaptorForUB(ct), b.i);    cur = a.i;    psize = 1;    do {      assert(cur >= 0);      assert(cur < TREENODEWANTED * 2 - 2);      psize += 1;//      printf("%d ", cur);      cur = getValueAt(spm, cur).i;    }    while (cur != b.i);//    printf("\n");    retval = pathFinder(getAdjAdaptorForUB(ct), a.i, b.i, pbuf, &plen);    assert(retval == CL_OK);    if (plen != psize) {      fprintf(stderr, "Error, plen %d and psize %d\n", plen, psize);      fprintf(stderr, "nodes %d and %d\n", a.i, b.i);      if (plen == 2)        fprintf(stderr, "plen: [%d, %d]\n", pbuf[0], pbuf[1]);    }    assert(plen == psize);    freeDoubleDoubler(spm);    spm = NULL;  }  freeSPMMap(spmmap);  spmmap = NULL;  freeDoubleDoubler(n);  n = NULL;//  dotdb = convertTreeToDot(ct, NULL, getLabelPerm(ct));//  writeDataBlockToFile(dotdb, "treefile.dot");//  assert(dotdb);//  assert(dotdb->ptr);//  assert(dotdb->size > TREENODEWANTED * 2);  freeUnrootedBinary(ct);  ct = NULL;}