Changeset 2686 in Sophya for trunk/SophyaProg/Tests


Ignore:
Timestamp:
Apr 25, 2005, 6:57:51 PM (20 years ago)
Author:
ansari
Message:

Ajout test classe DataTable ds tnt.cc - Reza 25/4/2005

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaProg/Tests/tnt.cc

    r2615 r2686  
    99#include "ntuple.h"
    1010#include "xntuple.h"
     11#include "datatable.h"
     12
     13/*  Programme test des classes  DVList, NTuple,, XNTuple          */
     14/*  DataTable et les handlers PPF                                 */
     15/*  SOPHYA - R. Ansari (LAL)  -   2000 -  2005                    */
    1116
    1217void test_dvl();
     
    1419void test_xntuple() ;
    1520void test_Xntuple() ;
     21void test_DataTable() ;
    1622
    1723int main(int narg, char *arg[])
     
    1925  SophyaInit();
    2026  if (narg < 2) {
    21     cout << " tnt/Erreur arg - Usage: tnt d/n/x/X \n"
    22          << " d:DVList n:NTuple x/X:XNTuple test \n" << endl;
     27    cout << " tnt/Erreur arg - Usage: tnt d/n/x/X/DB \n"
     28         << " d:DVList n:NTuple x/X:XNTuple DB: DataTable test \n" << endl;
    2329    exit(0);
    2430  }
     
    2935    else if (*arg[1] == 'x')  test_xntuple();
    3036    else if (*arg[1] == 'X')  test_Xntuple();
     37    else if (strcmp(arg[1],"DB") == 0)  test_DataTable();
    3138  }
    3239  catch(PThrowable exc ) {
     
    163170
    164171}
     172void test_DataTable()
     173{
     174  cout << "======= test_DataTable:  simple DataTable test ======= " << endl;
     175  DataTable dt(64);
     176  dt.AddIntegerColumn("line");
     177  dt.AddDoubleColumn("x");
     178  dt.AddFloatColumn("f_sin");
     179  dt.AddFloatColumn("f_cos");
     180  dt.AddDoubleColumn("f_sinxcos");
     181  dt.AddDoubleColumn("f_x2");
     182  MuTyV rec[10];
     183  cout << " 1/ First 1000 lines .... " << endl;
     184  for(int k = 0; k<1000; k++) {
     185    rec[0] = k;
     186    double x = M_PI*k/100.;
     187    double fx = sin(x)*cos(x);
     188    rec[1] = x;
     189    rec[2] = sin(x);
     190    rec[3] = cos(x);
     191    rec[4] = fx;
     192    rec[5] = x*x;
     193    dt.AddLine(rec);
     194  }
     195  cout << "1.b/ Use of = operator to make copy of dt " << endl;
     196  DataTable dtc1;
     197  dtc1 = dt;
     198
     199  dt.Show();
     200  cout << " 2/ Lines 1000-2000  .... " << endl;
     201  for(int k = 1000; k<2000; k++) {
     202    rec[0] = k;
     203    double x = M_PI*k/100.;
     204    double fx = sin(x)*cos(x);
     205    rec[1] = x;
     206    rec[2] = sin(x);
     207    rec[3] = cos(x);
     208    rec[4] = fx;
     209    rec[5] = x*x;
     210    dt.AddLine(rec);
     211  }
     212  cout << "2.b/ dt.Show();  : " << endl;
     213  dt.Show(); 
     214  cout << "2.c/ dtc1.Show();  : " << endl;
     215  dtc1.Show(); 
     216  cout << "2.d/  dt.LineHeaderToString() dt.LineToString(k)   : " << endl;
     217  cout << dt.LineHeaderToString() ;
     218  for(int k = 0; k<1500; k+=75)
     219    cout << "Line[" << k << "] " << dt.LineToString(k) << endl ;
     220  {
     221    cout << "3/ Writing DataTable dt to PPF stream dtable.ppf " << endl;
     222    POutPersist po("dtable.ppf");
     223    po << dt;
     224  }
     225  {
     226    cout << "4/ Reading DataTable dtr from PPF stream dtable.ppf " << endl;
     227    PInPersist pi("dtable.ppf");
     228    DataTable dtr;
     229    pi >> dtr;
     230    cout << "4.b/ cout << dtr; " << endl;
     231    cout << dtr;
     232    cout << "4.c/  dtr.LineHeaderToString() dtr.LineToString(k)   : " << endl;
     233    cout << dtr.LineHeaderToString() ;
     234    for(int k = 0; k<1500; k+=75)
     235      cout << "Line[" << k << "] " << dtr.LineToString(k) << endl ;
     236   
     237  }
     238
     239  cout << "============ FIN  test_DataTable ============== " << endl; 
     240}
    165241
    166242void test_Xntuple()
Note: See TracChangeset for help on using the changeset viewer.