Skip to content
Snippets Groups Projects
Select Git revision
  • 4a7e3e0573e4f919c08cfac44b9e67a7a8c519e1
  • master default protected
  • dev_nanopore
  • 2.0_beta
  • V_3.0
  • v_2.1
  • V_2.0
  • V_1.9.6
  • v_1.9.6
  • v_1.9.5
  • v_1.9.4
  • V_1.9.3
  • V_1.9.2
  • V_1.9.1
  • V_1.9
  • V_1.8
  • V_1.6
  • 1.5.1
  • V_1.5
  • V1.4
  • V1.3
21 results

unit_test_main_utils.cpp

Blame
  • user avatar
    Veronique Legrand authored
    updated unit_test_main_utils with new values for collision proba according to change in size of the CMS array.
    4a7e3e05
    History
    unit_test_main_utils.cpp 3.62 KiB
    /*
     * test_main_utils.cpp
     *
     *  Created on: May 25, 2016
     *      Author: vlegrand
     */
    
    #include <iostream>
    #include <cassert>
    #include <string>
    #include <cmath>
    
    
    using namespace std;
    
    #include "rock_commons.h"
    #include "main_utils.h"
    #include "ROCKparams.h"
    
    void test_processIOFileArgs() {
        std::vector<IO_fq_files> single_files;
        vector<PE_files> v_PE_files;
        std::vector<string> v_input_lines;
        std::vector<string> v_output_lines;
        ROCKparams main_parms;
        int f_id=0;
        int ret=main_parms.loadInOutFileArgs("../test/data/unit/list_input1.txt","../test/data/unit/list_output1.txt",v_input_lines,v_output_lines);
        assert(ret==EXIT_SUCCESS);
        ret=main_parms.processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id);
        assert(ret==EXIT_FAILURE);
        f_id=0;
        v_PE_files.clear();
        single_files.clear();
        v_input_lines.clear();
        v_output_lines.clear();
        ret=main_parms.loadInOutFileArgs("../test/data/unit/list_input2.txt","../test/data/unit/list_output2.txt",v_input_lines,v_output_lines);
        ret=main_parms.processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id);
        assert(ret==EXIT_FAILURE);
        f_id=0;
        v_PE_files.clear();
        single_files.clear();
        v_input_lines.clear();
        v_output_lines.clear();
        ret=main_parms.loadInOutFileArgs("../test/data/unit/list_input3.txt","../test/data/unit/list_output3.txt",v_input_lines,v_output_lines);
        ret=main_parms.processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id);
        assert(ret==EXIT_SUCCESS);
        assert(f_id==14);
        assert(single_files.size()==2);
        assert(v_PE_files.size()==6);
        IO_fq_files s=single_files[0];
        assert(s.in_fq_file.compare("fifi")==0);
        assert(s.out_fq_file.compare("ofifi")==0);
        PE_files s2=v_PE_files[5];
        assert(s2.PE2.in_fq_file.compare("nono")==0);
        assert(s2.PE2.out_fq_file.compare("onono")==0);
    
        v_output_lines.clear();
        v_input_lines.clear();
        v_PE_files.clear();
        single_files.clear();
        ret=main_parms.loadInOutFileArgs("../test/data/unit/list_input3.txt","",v_input_lines,v_output_lines);
        ret=main_parms.processInOutFileArgs(v_input_lines,v_output_lines,single_files,v_PE_files,f_id);
        s=single_files[0];
        assert(s.out_fq_file.compare("fifi.rock.fq")==0);
        s2=v_PE_files[5];
        assert(s2.PE2.out_fq_file.compare("nono.rock.fq")==0);
    
    }
    
    
    void test_getBestLambdaForN() {
        int lambda_max=10;
        unsigned long nb_k_mer=200000000;
        int best=getBestLambdaForN(nb_k_mer,lambda_max);
        assert(best==2);
        nb_k_mer=600000000;
           best=getBestLambdaForN(nb_k_mer,lambda_max);
        assert(best==3);
        nb_k_mer=2000000000;
        best=getBestLambdaForN(nb_k_mer,lambda_max);
        // cout<<best<<endl;
        assert(best==5);
        nb_k_mer=10000000000;
        best=getBestLambdaForN(nb_k_mer,lambda_max);
        assert(best==lambda_max);
    }
    
    void test_getCollisionProba() {
        float p =getCollisionProba(1,2);
        // cout<<p<<endl;
        assert(p==0.0);
        p =getCollisionProba(1000000000,2);
        // cout<<p<<endl;
        assert(floor(p*1000+0.5)==43);
        p =getCollisionProba(1000000000,4);
        assert(floor(p*1000+0.5)==2);
        p =getCollisionProba(20000000000,10);
        assert(floor(p*1000+0.5)==909);
    }
    
    
    int main() {
        cout<<"testing main_utils"<<endl;
        cout<<"testing processing of IOFile arguments ( following 2 error messages are what is expected; don't worry)."<<endl;
        test_processIOFileArgs();
        cout<<"test computation of the bast lambda value depending on nb distinct k-mers."<<endl;
        test_getBestLambdaForN();
        cout<<"testing computation of collision probability."<<endl;
        test_getCollisionProba();
        cout<<"done"<<endl;
    }