Esempio n. 1
0
ANode * windNode(Data & data) {
    std::cout << "Wind Node" << std::endl;
    Node<Wind> * tmpnode = new Node<Wind > ();
    tmpnode->AddChild(Strong, ID3(data.clean<WIND, Wind, Strong>()));
    tmpnode->AddChild(Weak, ID3(data.clean<WIND, Wind, Weak>()));
    return (tmpnode);
}
Esempio n. 2
0
ANode * humidityNode(Data & data) {
    std::cout << "Humidity Node" << std::endl;
    Node<Humidity> * tmpnode = new Node<Humidity > ();
    tmpnode->AddChild(High, ID3(data.clean<HUMIDITY, Humidity, High>()));
    tmpnode->AddChild(Normal, ID3(data.clean<HUMIDITY, Humidity, Normal>()));
    return (tmpnode);
}
Esempio n. 3
0
ANode * temperatureNode(Data & data) {
    std::cout << "Temperature Node" << std::endl;
    Node<Temperature> * tmpnode = new Node<Temperature > ();
    tmpnode->AddChild(Hot, ID3(data.clean<TEMPERATURE, Temperature, Hot>()));
    tmpnode->AddChild(Mild, ID3(data.clean<TEMPERATURE, Temperature, Mild>()));
    tmpnode->AddChild(Cool, ID3(data.clean<TEMPERATURE, Temperature, Cool>()));
    return (tmpnode);
}
Esempio n. 4
0
ANode * outlookNode(Data & data) {
    std::cout << "Outlook Node" << std::endl;
    Node<Outlook> * tmpnode = new Node<Outlook > ();
    tmpnode->AddChild(Sunny, ID3(data.clean<OUTLOOK, Outlook, Sunny>()));
    tmpnode->AddChild(Rain, ID3(data.clean<OUTLOOK, Outlook, Rain>()));
    tmpnode->AddChild(Overcast, ID3(data.clean<OUTLOOK, Outlook, Overcast>()));
    return (tmpnode);
}
Esempio n. 5
0
int main(int argc, char** argv) {
    Data * dat = new Data();
    
    ANode * root = ID3(dat);
    std::cout << "Should I go play ? " << exemple(root, Rain, Cool, High, Strong ) << std::endl;
    freeTree(root);
    return 0;
}
Esempio n. 6
0
vmIntrinsics::ID vmIntrinsics::find_id_impl(vmSymbols::SID holder,
                                            vmSymbols::SID name,
                                            vmSymbols::SID sig,
                                            jshort flags) {
  assert((int)vmSymbols::SID_LIMIT <= (1<<vmSymbols::log2_SID_LIMIT), "must fit");

  // Let the C compiler build the decision tree.

#define VM_INTRINSIC_CASE(id, klass, name, sig, fcode) \
  case ID3(SID_ENUM(klass), SID_ENUM(name), SID_ENUM(sig)): \
    if (!match_##fcode(flags))  break; \
    return id;

  switch (ID3(holder, name, sig)) {
    VM_INTRINSICS_DO(VM_INTRINSIC_CASE,
                     VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE);
  }
  return vmIntrinsics::_none;

#undef VM_INTRINSIC_CASE
}
Esempio n. 7
0
void CompoundTransliteratorTest::TestGetSetAdoptTransliterator(){
    logln("Testing the getTransliterator() API of CompoundTransliterator");
    UnicodeString ID("Latin-Greek;Greek-Latin;Latin-Devanagari;Devanagari-Latin;Latin-Cyrillic;Cyrillic-Latin;Any-Hex;Hex-Any");
    UErrorCode status = U_ZERO_ERROR;
    UParseError parseError;
    CompoundTransliterator *ct1=new CompoundTransliterator(ID, parseError, status);
    if(U_FAILURE(status)){
        dataerrln("CompoundTransliterator construction failed - %s", u_errorName(status));
        return;
    }
    int32_t count=ct1->getCount();
    UnicodeString *array=split(ID, 0x003b, count);
    int i;
    for(i=0; i < count; i++){
        UnicodeString child= ct1->getTransliterator(i).getID();
        if(child != *(array+i)){
            errln("Error getTransliterator() failed: Expected->" + *(array+i) + " Got->" + child);
        }else {
            logln("OK: getTransliterator() passed: Expected->" + *(array+i) + " Got->" + child);
        }
    }
    delete []array;

    logln("Testing setTransliterator() API of CompoundTransliterator");
    UnicodeString ID2("Hex-Any;Any-Hex;Latin-Cyrillic;Cyrillic-Latin;Halfwidth-Fullwidth;Fullwidth-Halfwidth");
    array=split(ID2, 0x003b, count);
    Transliterator** transarray=new Transliterator*[count];
    for(i=0;i<count;i++){
        transarray[i]=Transliterator::createInstance(*(array+i), UTRANS_FORWARD, parseError, status);
        if(U_FAILURE(status)){
            errln("Error could not create Transliterator with ID :"+*(array+i));
        }else{
            logln("The ID for the transltierator created is " + transarray[i]->getID());
        }
        status = U_ZERO_ERROR;
    }

    /*setTransliterator and adoptTransliterator */

    ct1->setTransliterators(transarray, count);
    if(ct1->getCount() != count || ct1->getID() != ID2){
        errln((UnicodeString)"Error: setTransliterators() failed.\n\t Count:- expected->" + count + (UnicodeString)".  got->" + ct1->getCount() +
                                                   (UnicodeString)"\n\tID   :- expected->" + ID2 + (UnicodeString)".  got->" + ct1->getID());
    }
    else{
        logln("OK: setTransliterators() passed"); 
    }
    /*UnicodeString temp;
    for(i=0;i<count-1;i++){
        temp.append(ct1->getTransliterator(i).getID());
        temp.append(";");
    }
    temp.append(ct1->getTransliterator(i).getID());
    if(temp != ID2){
        errln("Error: setTransliterator() failed.  Expected->" + ID2 + "\nGot->" + temp);
    }
    else{
        logln("OK: setTransliterator() passed");
    }*/
    logln("Testing adoptTransliterator() API of CompoundTransliterator");
    UnicodeString ID3("Latin-Katakana");
    Transliterator **transarray2=(Transliterator **)uprv_malloc(sizeof(Transliterator*)*1);
    transarray2[0] = Transliterator::createInstance(ID3,UTRANS_FORWARD,parseError,status);
    if (transarray2[0] != 0) {
        ct1->adoptTransliterators(transarray2, 1);
    }
    if(ct1->getCount() != 1 || ct1->getID() != ID3){
        errln((UnicodeString)"Error: adoptTransliterators() failed.\n\t Count:- expected->1" + (UnicodeString)".  got->" + ct1->getCount() +
                                                   (UnicodeString)"\n\tID   :- expected->" + ID3 + (UnicodeString)".  got->" + ct1->getID());
    }
    else{
        logln("OK: adoptTranslterator() passed");
    }
    delete ct1;
    for(i=0;i<count;i++){
        delete transarray[i];
    }
    delete []transarray;
    delete []array;
}