// File: /workspace/github_c_makefile_star2_O1/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 0x3aa701(%rip), %rdx    # 0x3af1e8
movl $0x0, (%rdx)
leal -0x3e8(%rsi), %edx
cmpl $0x20, %edx
ja 0x4b16
leaq 0x9d5d5(%rip), %rsi     # 0xa20d4
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x83521
addl $0xfffff830, %esi       # imm = 0xFFFFF830
cmpl $0xd, %esi
ja 0x4cad
leaq 0x9d62c(%rip), %rdx     # 0xa2158
movslq (%rdx,%rsi,4), %rsi
addq %rdx, %rsi
jmpq *%rsi
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x80cb8
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8395a
leaq 0x9dbaa(%rip), %rcx     # 0xa2702
jmp 0x4c8a
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8145e
leaq 0xa217f(%rip), %r10     # 0xa6cf1
jmp 0x4bb1
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x80b22
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7f11c
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8098c
leaq 0x9db56(%rip), %rcx     # 0xa26fb
jmp 0x4c8a
leaq 0x9db6d(%rip), %r10     # 0xa271e
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
movq %r10, %r8
jmp 0x83d7c
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x81165
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7ef3a
leaq 0x9db10(%rip), %rcx     # 0xa26f5
jmp 0x4c8a
leaq 0x9db21(%rip), %rcx     # 0xa2712
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x80f48
movl (%rcx), %ecx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x80152
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7f5b2
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8299b
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x80907
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x822d5
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x81abc
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x8161c
leaq 0x9da86(%rip), %rcx     # 0xa26f0
jmp 0x4c8a
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x81e7d
leaq 0x9da85(%rip), %rcx     # 0xa2706
jmp 0x4c8a
leaq 0x9da83(%rip), %rcx     # 0xa270d
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x80e7e
leaq 0x9da88(%rip), %rcx     # 0xa2727
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x83f51
retq
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7fb28
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7f0b2
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7efa2
movl (%rcx), %ecx
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x80556
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x7f86a
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %rcx
jmp 0x82fbb
leaq 0x9da20(%rip), %rcx     # 0xa272b
movl %r8d, %esi
movq %r9, %rdx
movq %rax, %r8
jmp 0x84a2f