Changeset 3276 in Sophya for trunk/SophyaProg/Tests/tcmd.cc


Ignore:
Timestamp:
Jul 6, 2007, 4:17:18 PM (18 years ago)
Author:
ansari
Message:

Codage test specifique classeTimer ds tcmd.cc , Reza 05/07/2007

File:
1 edited

Legend:

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

    r2615 r3276  
    1212#include "commander.h"
    1313
     14/* -------------- Programme test de SOPHYA   tcmd.cc 
     15   Test des classes Timer , CExpressionEvaluator ,
     16   RPNExpressionEvaluator , Commander  ,
     17   csh> tcmd commander
     18   csh> tcmd cexptst
     19   csh> tcmd rpntst
     20   csh  tcmd timer
     21   ------ R. Ansari ---- 2003-2007    --------------- */
    1422
    1523class TCmdExecutor : public CmdExecutor {
     
    5361int tst_cexpreval();  // Test de CExpressionEvaluator
    5462int tst_rpneval();    // Test de RPNEvaluator
     63int tst_timer();      // Test de Timer
    5564
    5665/* --Main-- */
     
    5968
    6069  if (narg < 2) {
    61     cout << " Usage: tcmd S=commander/cexptst/rpntst \n"
     70    cout << " Usage: tcmd S=commander/cexptst/rpntst/timer \n"
    6271         << "  S= commander: Commader class test \n"
    6372         << "  S= cexptst: CExpressionEvaluator class test \n"
    64          << "  S= rpntst: RPNExpressionEvaluator class test \n" << endl;
     73         << "  S= rpntst: RPNExpressionEvaluator class test \n"
     74         << "  S= timer: Timer class test \n" << endl;
    6575    return 0;
    6676  }
     
    7888    else if (opt == "cexptst") rc = tst_cexpreval();
    7989    else if (opt == "rpntst")   rc = tst_rpneval();
     90    else if (opt == "timer")   rc = tst_timer();
    8091    else {
    8192      cout << " tcmd/error: Unknown select option: " << opt << endl;
     
    376387  return 0;
    377388}
     389
     390/* --Fonction-- */
     391int  tst_timer()
     392{
     393  TIMEF ;
     394  cout << "**** tcmd.cc : Test class SOPHYA::Timer() **** " << endl;
     395  Timer tm("tcmd::Timer", false);
     396  int N = 10000000;
     397  double * x = new double[N];
     398  for(int k=0; k<N; k++) x[k] = k*0.0001;
     399  for(int k=0; k<N; k++) x[k] = sin(x[k]);
     400  for(int k=0; k<N; k++) x[k] = cos(x[k]);
     401  tm.Split();
     402  cout << " Step1: PARTIAL CPU=" << tm.PartialCPUTime()
     403       << " Elapsed= " << tm.PartialElapsedTime() << endl;
     404  cout << " Step1: TOTAL CPU=" << tm.TotalCPUTime()
     405       << "  Elapsed= " << tm.TotalElapsedTime() << endl;
     406
     407  for(int k=0; k<N; k++) x[k] *= 8.5;
     408  for(int k=0; k<N; k++) x[k] = tan(x[k]);
     409
     410  tm.Split();
     411  cout << " Step2: PARTIAL CPU=" << tm.PartialCPUTime()
     412       << " Elapsed= " << tm.PartialElapsedTime() << endl;
     413  cout << " Step2: TOTAL CPU=" << tm.TotalCPUTime()
     414       << "  Elapsed= " << tm.TotalElapsedTime() << endl;
     415
     416  for(int k=0; k<N; k++) x[k] = sin(x[k]);
     417  for(int k=0; k<N; k++) x[k] = cos(x[k]);
     418  for(int k=0; k<N; k++) x[k] *= 15.5;
     419  for(int k=0; k<N; k++) x[k] = sin(x[k]);
     420
     421  tm.Split();
     422  cout << " Step3: PARTIAL CPU=" << tm.PartialCPUTime()
     423       << " Elapsed= " << tm.PartialElapsedTime() << endl;
     424  cout << " Step3: TOTAL CPU=" << tm.TotalCPUTime()
     425       << "  Elapsed= " << tm.TotalElapsedTime() << endl;
     426
     427
     428  delete x;
     429}
     430
Note: See TracChangeset for help on using the changeset viewer.