1 ltfat_int      L[] = {  9 , 10, 100, 101 };
2 ltfat_int  depth[] = {  1, 2, 3, 4, 5 };
3 ltfat_int  rLen[]  = { 1, 2, 3, 4, 7, 8, 10, 19, 21};
4 
5 for (unsigned int lId = 0; lId < ARRAYLEN(L); lId++)
6 {
7     LTFAT_REAL* fin = LTFAT_NAME_REAL(malloc)(L[lId]);
8     TEST_NAME(fillRand)(fin, L[lId]);
9 
10     for (unsigned int dId = 0; dId < ARRAYLEN(depth); dId++)
11     {
12         ltfat_int maxPos;
13         LTFAT_REAL max;
14         ltfat_int maxPos2;
15         LTFAT_REAL max2;
16         /* fin[L[lId]-1] = 100; */
17         LTFAT_NAME(findmaxinarray)(fin, L[lId], &max, &maxPos);
18         printf("max=%.2f, maxPos=%td\n", max, maxPos);
19 
20         LTFAT_NAME(maxtree)* p = NULL;
21         LTFAT_NAME(maxtree_initwitharray)(L[lId], depth[dId], fin, &p);
22         LTFAT_NAME(maxtree_findmax)(p, &max2, &maxPos2);
23         printf("max=%.2f, maxPos=%td\n", max2, maxPos2);
24 
25         for (unsigned int idx = 0; idx < L[lId]; idx++)
26         {
27             for (unsigned int rIdx = 0; rIdx < ARRAYLEN(rLen); rIdx++)
28             {
29 
30                 max = -100; max2 = -101; maxPos = -1; maxPos2 = -1;
31                 TEST_NAME(fillRand)(fin, L[lId]);
32                 LTFAT_NAME(maxtree_reset)(p, fin);
33 
34                 for (unsigned int ii = 0; ii < rLen[rIdx]; ii++)
35                 {
36                     ltfat_int pos = idx + ii;
37                     if (pos >= L[lId])
38                         pos = pos%L[lId];
39 
40                     fin[pos] = 100 + ii;
41                 }
42 
43                 LTFAT_NAME(findmaxinarray)(fin, L[lId], &max, &maxPos);
44                 /* printf("max=%.2f, maxPos=%td\n",max,maxPos); */
45 
46                 LTFAT_NAME(maxtree_setdirty)(p, idx, idx + rLen[rIdx]);
47                 LTFAT_NAME(maxtree_findmax)(p, &max2, &maxPos2);
48 
49                 /* printf("max=%.2f, maxPos=%td\n",max2,maxPos2);  */
50                 mu_assert( max == max2 && maxPos == maxPos2 ,
51                            "TREEMAX L=%td, d=%td, idx=%d, r=%td",
52                            L[lId], depth[dId], idx, rLen[rIdx] );
53             }
54         }
55 
56 
57         LTFAT_NAME(maxtree_done)(&p);
58     }
59 
60     ltfat_free(fin);
61 }
62