Changeset 508 for cpp


Ignore:
Timestamp:
05/10/16 23:07:32 (9 years ago)
Author:
Maciej Komosinski
Message:

Conditional macro to identify for which genotypes the order of genotype validators matters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/genetics/geno.cpp

    r500 r508  
    247247        if (vals!=NULL)
    248248                {
     249#ifdef WARN_VALIDATION_INCONSISTENCY
     250                vector<int> results;
     251                int first_result=-1;
     252                FOREACH(GenoValidator*, v, (*vals))
     253                        {
     254                        int r=v->testGenoValidity(*this);
     255                        if (first_result<0) first_result=r;
     256                        results.push_back(r);
     257                        }
     258                int N=vals->size();
     259                for(int i=1;i<N;i++)
     260                        if (results[i]!=results[0])
     261                                {
     262                                SString txt="Inconsistent validation results";
     263                                for(int i=0;i<N;i++)
     264                                        txt+=SString::sprintf(" %d",results[i]);
     265                                txt+=" for genotype '";
     266                                txt+=getGene();
     267                                txt+="'";
     268                                logPrintf("Geno","validate",LOG_WARN,txt.c_str());
     269                                break;
     270                                }
     271                isvalid=first_result;
     272                if (isvalid>=0)
     273                        return;
     274#else
    249275        FOREACH(GenoValidator*, v, (*vals))
    250276                if ((isvalid = v->testGenoValidity(*this)) >= 0)
    251277                        return;
     278#endif
    252279                }
    253280        isvalid = 0;
Note: See TracChangeset for help on using the changeset viewer.