// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/algorithm.c
// Function: generate_test_code
void generate_test_code(FILE* testcodefile, int algorithm, void* model, void* parameters, int language, Datasetptr current_dataset)
{
 /*!Last Changed 21.08.2007 added RBF and RBFREG*/
 /*!Last Changed 07.08.2007 added QDACLASS*/
 /*!Last Changed 15.05.2006*/
 indentation = 0;
 switch (algorithm)
  {
   case SELECTMAX    :generate_test_code_selectmax(testcodefile, language, current_dataset, (Model_selectmaxptr) model);
                      break;
   case ONEFEATURE   :generate_test_code_onefeature(testcodefile, language, current_dataset, (Model_onefeatureptr) model);
                      break;
   case SELECTAVERAGE:generate_test_code_selectaverage(testcodefile, language, current_dataset, (double*) model);
                      break;
   case GAUSSIAN     :generate_test_code_gaussian(testcodefile, language, current_dataset, (Model_gaussianptr) model);
                      break;
   case NEARESTMEAN  :generate_test_code_nearestmean(testcodefile, language, current_dataset, (Instanceptr) model);
                      break;
   case LINEARREG    :generate_test_code_linearreg(testcodefile, language, current_dataset, (Model_linearregressionptr) model);
                      break;                      
   case QUANTIZEREG  :generate_test_code_quantizereg(testcodefile, language, current_dataset, (Model_quantizeregptr) model);
                      break;                      
   case KNN          :generate_test_code_knn(testcodefile, language, current_dataset, ((Knn_parameterptr) parameters)->nearcount, (Instanceptr) model);
                      break;
   case KNNREG       :generate_test_code_knnreg(testcodefile, language, current_dataset, ((Knn_parameterptr) parameters)->nearcount, (Instanceptr) model);
                      break;
   case C45          :generate_test_code_c45(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case LDT          :generate_test_code_ldt(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case SVMTREE      :generate_test_code_svmtree(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case SVMREGTREE   :
   case REGTREE      :generate_test_code_regtree(testcodefile, language, current_dataset, (Regressionnodeptr) model);
                      break;
   case IREP         :generate_test_code_ripper(testcodefile, language, current_dataset, "Irep", (Rulesetptr) model);
                      break;
   case IREP2        :generate_test_code_ripper(testcodefile, language, current_dataset, "Irep2", (Rulesetptr) model);
                      break;
   case RIPPER       :generate_test_code_ripper(testcodefile, language, current_dataset, "Ripper", (Rulesetptr) model);
                      break;
   case CN2          :generate_test_code_ripper(testcodefile, language, current_dataset, "Cn2", (Rulesetptr) model);
                      break;
   case LERILS       :generate_test_code_ripper(testcodefile, language, current_dataset, "Lerils", (Rulesetptr) model);
                      break;
   case PART         :generate_test_code_ripper(testcodefile, language, current_dataset, "Part", (Rulesetptr) model);
                      break;
   case RISE         :generate_test_code_rise(testcodefile, language, current_dataset, (Rulesetptr) model);
                      break;
   case MULTIRIPPER  :generate_test_code_multiripper(testcodefile, language, current_dataset, "Multiripper", (Rulesetptr) model);
                      break;
   case C45RULES     :generate_test_code_c45rules(testcodefile, language, current_dataset, (Rulesetptr) model);
                      break;
   case LDACLASS     :generate_test_code_ldaclass(testcodefile, language, current_dataset, (Model_ldaclassptr) model);
                      break;
   case NAIVEBAYES   :generate_test_code_naivebayes(testcodefile, language, current_dataset, (Model_naivebayesptr) model);
                      break;
   case QDACLASS     :generate_test_code_qdaclass(testcodefile, language, current_dataset, (Model_qdaclassptr) model);
                      break;
   case LOGISTIC     :generate_test_code_logistic(testcodefile, language, current_dataset, (double**) model);
                      break;
   case RBF          :generate_test_code_rbf(testcodefile, language, current_dataset, (Rbfnetworkptr) model);
                      break;
   case RBFREG       :generate_test_code_rbfreg(testcodefile, language, current_dataset, (Rbfnetworkptr) model);
                      break;
   case MLPGENERIC   :
   case DNC          :generate_test_code_mlpgeneric(testcodefile, language, current_dataset, (Mlpnetworkptr) model);
                      break;
   case MLPGENERICREG:
   case DNCREG       :generate_test_code_mlpgenericreg(testcodefile, language, current_dataset, (Mlpnetworkptr) model);
                      break;
   case MULTILDT     :generate_test_code_multildt(testcodefile, language, current_dataset, (Decisionnodeptr) model, "multildt");
                      break;
   case NBTREE       :generate_test_code_multildt(testcodefile, language, current_dataset, (Decisionnodeptr) model, "nodeboundedtree");
                      break;
   case SVM          :generate_test_code_svm(testcodefile, language, current_dataset, "Svm", (Svm_modelptr) model);
                      break;
   case SVMREG       :generate_test_code_svmreg(testcodefile, language, current_dataset, "Svmreg", (Svm_modelptr) model);
                      break;
  }
}

// Assembly:
movq %rdx, %rax
leaq 0x3ad71b(%rip), %rdx    # 0x3b21e8
movl $0x0, (%rdx)
leal -0x3e8(%rsi), %edx
cmpl $0x20, %edx
ja 0x4afc
leaq 0xa05ef(%rip), %rsi     # 0xa50d4
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x85b50
addl $0xfffff830, %esi       # imm = 0xFFFFF830
cmpl $0xd, %esi
ja 0x4c93
leaq 0xa0646(%rip), %rdx     # 0xa5158
movslq (%rdx,%rsi,4), %rsi
addq %rdx, %rsi
jmpq *%rsi
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x82fd8
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x85f89
leaq 0xa0bc4(%rip), %rcx     # 0xa5702
jmp 0x4c70
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x83798
leaq 0xa5209(%rip), %r10     # 0xa9d61
jmp 0x4b97
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x82e38
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x810cb
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x82c98
leaq 0xa0b70(%rip), %rcx     # 0xa56fb
jmp 0x4c70
leaq 0xa0b87(%rip), %r10     # 0xa571e
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
movq %r10, %r8
jmp 0x863ab
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x83491
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x80ee9
leaq 0xa0b2a(%rip), %rcx     # 0xa56f5
jmp 0x4c70
leaq 0xa0b3b(%rip), %rcx     # 0xa5712
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x8326e
movl (%rcx), %ecx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x822f8
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x815ae
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x84e62
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x82c13
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8470c
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x83e5a
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x83956
leaq 0xa0aa0(%rip), %rcx     # 0xa56f0
jmp 0x4c70
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x84254
leaq 0xa0a9f(%rip), %rcx     # 0xa5706
jmp 0x4c70
leaq 0xa0a9d(%rip), %rcx     # 0xa570d
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x831a4
leaq 0xa0aa2(%rip), %rcx     # 0xa5727
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x86586
retq
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x81b55
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x81061
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x80f51
movl (%rcx), %ecx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x82754
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8186f
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x85533
leaq 0xa0a3a(%rip), %rcx     # 0xa572b
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x87232