/* create a vector of 4 elements, insert two true values and one false value in it, verify that the vector contains two true values */ Test(simpl_infoTest,countTrueTest3) { pbit_vect v1=BV_create(4); BV_set(v1,0,1); BV_set(v1,1,1); BV_set(v1,2,0); cr_expect(countTrue(v1)==2); }
bool Sudoku::updateCand(int ii, int jj) { int num = board[ii][jj]; if(num==0){ return true; } int cc[2]; int ij[2]; whichCell(ii,jj,cc); for(int idx = 0;idx<bsize;idx++){ //check row if(board[ii][idx] == 0 && cand[ii][idx][num]){ cand[ii][idx][num] = false; int cnt = countTrue(cand[ii][idx], bsize+1); if(cnt==0){ return false; } if(cnt==1){ // board[ii][idx]= firstTrue(cand[ii][idx], bsize+1); } } //check col if(board[idx][jj] == 0 &&cand[idx][jj][num]){ cand[idx][jj][num] = false; int cnt = countTrue(cand[idx][jj], bsize+1); if(cnt==0){ return false; } if(cnt==1){ // board[idx][jj] = firstTrue(cand[idx][jj], bsize+1); } } cellIdx(cc,idx,ij); if(board[ij[0]][ij[1]] == 0 && cand[ij[0]][ij[1]][num]){ cand[ij[0]][ij[1]][num]=false; int cnt = countTrue( cand[ij[0]][ij[1]], bsize+1); if(cnt==0){ return false; } if(cnt==1){ // board[ij[0]][ij[1]]= firstTrue( cand[ij[0]][ij[1]], bsize+1); } } } return true; }
// Return the number of elements in the array for which the // somePredicate function returns true. int countTrue(const double a[], int n) { if (n <= 0) return 0; int temp = countTrue(a+1, n-1); if (somePredicate(a[0])) return 1 + temp; return temp; }
int countTrue(const double a[], int n) { int counter = 0; if(n > 0) { if(somePredicate(a[n-1])) counter++; counter += countTrue(a, n-1); } return counter; }
void psempl_print(psempl p) { DEBUG("fattori certi: %d",countTrue(p->factors_used)); DEBUG("fattori non utilizzati: %d",countTrue(p->factors_not_used)); DEBUG("est già fattorizzati: %d",countTrue(p->ests_ok)); }
/* create a vector of 10 elements, insert two true values in arbitrary positions, verify that the vector contains two true values */ Test(simpl_infoTest,countTrueTest6) { pbit_vect v1=BV_create(10); BV_set(v1,7,1); BV_set(v1,4,1); cr_expect(countTrue(v1)==2); }
/* create a vector of 10 elements, verify that the vector contains zero true values */ Test(simpl_infoTest,countTrueTest4) { pbit_vect v1=BV_create(10); cr_expect(countTrue(v1)==0); }