Branch Coverage

c-lib/libdivsufsort/divsufsort.c
Criterion Covered Total %
branch 80 108 74.0


line true false branch
54 12288 48 for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; }
55 3145728 48 for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; }
60 4560000 48 for(i = n - 1, m = n, c0 = T[n - 1]; 0 <= i;) {
62 4560000 0 do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1));
0 4560000 do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1));
63 0 4560000 if(0 <= i) {
68 18239952 48 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) {
13680000 4559952 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) {
81 12288 48 for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) {
85 1566720 12288 for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) {
92 48 0 if(0 < m) {
95 4559952 48 for(i = m - 2; 0 <= i; --i) {
134 11712 48 for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) {
135 1434720 11712 for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) {
137 48 1434672 if(1 < (j - i)) {
146 96 0 for(i = m - 1; 0 <= i; --i) {
147 48 48 if(0 <= SA[i]) {
149 0 48 do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i]));
0 0 do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i]));
151 48 0 if(i <= 0) { break; }
154 4559856 48 do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0);
162 4560000 48 for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) {
163 4560000 0 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { }
0 4560000 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { }
164 0 4560000 if(0 <= i) {
166 18239952 48 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { }
13680000 4559952 for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { }
167 4560000 0 SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t;
0 4560000 SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t;
173 12240 48 for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) {
175 1566720 12240 for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) {
181 4560000 1566720 j <= k;
202 48 0 if(0 < m) {
205 12240 48 for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) {
209 18240000 12240 i <= j;
211 13680000 4560000 if(0 < (s = *j)) {
217 13679952 48 if((0 < s) && (T[s - 1] > c0)) { s = ~s; }
4559952 9120000 if((0 < s) && (T[s - 1] > c0)) { s = ~s; }
218 144 13679856 if(c0 != c2) {
219 0 144 if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; }
235 48 0 *k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1);
237 22800000 48 for(i = SA, j = SA + n; i < j; ++i) {
238 4559952 18240048 if(0 < (s = *i)) {
241 4559952 0 if((s == 0) || (T[s - 1] < c0)) { s = ~s; }
4559952 0 if((s == 0) || (T[s - 1] < c0)) { s = ~s; }
242 0 4559952 if(c0 != c2) {
340 48 0 if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; }
48 0 if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; }
0 48 if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; }
341 0 48 else if(n == 0) { return 0; }
342 0 48 else if(n == 1) { SA[0] = 0; return 0; }
343 0 48 else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; }
349 48 0 if((bucket_A != NULL) && (bucket_B != NULL)) {
48 0 if((bucket_A != NULL) && (bucket_B != NULL)) {