⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cksm_02.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/system/Checksum/cksm_02.cc// version: $Id: cksm_02.cc,v 1.7 2000/11/17 18:15:35 duncan Exp $//// isip include files//#include "Checksum.h"#include <Console.h>// method: diagnose//// arguments://  Integral::DEBUG level: (input) debug level for diagnostics//// return: a boolean value indicating status//boolean Checksum::diagnose(Integral::DEBUG level_a) {  //----------------------------------------------------------------------  //  // 0. preliminaries  //  //----------------------------------------------------------------------  // output the class name  //  if (level_a > Integral::NONE) {    SysString output(L"diagnosing class ");    output.concat(CLASS_NAME);    output.concat(L": ");    Console::put(output);    Console::increaseIndention();  }  //---------------------------------------------------------------------  //  // 1. required public methods  //  //---------------------------------------------------------------------  // set indentation  //  if (level_a > Integral::NONE) {    Console::put(L"testing required public methods...\n");    Console::increaseIndention();  }  // test the debug methods  //  setDebug(debug_level_d);    if (level_a > Integral::BRIEF) {    Checksum tmp;    tmp.debug(L"debug");  }    // testing class constructors  //  Checksum cksm_1;  Checksum cksm_2(cksm_1);  Checksum cksm_3;  // testing the operator= operator and assign method  //  cksm_3 = cksm_1;  // testing i/o methods   //  // testing the equality method  //  if (!cksm_3.eq(cksm_1)) {    return Error::handle(name(), L"assign method/eq", Error::TEST,			 __FILE__, __LINE__);  }    if (!cksm_2.eq(cksm_1)) {    return Error::handle(name(), L"copy constructor/eq", Error::TEST,			 __FILE__, __LINE__);  }    // testing memory management methods  //  Checksum::setGrowSize((long)500);  for (long j = 1; j <= 10; j++) {    Checksum** dyn_cal = new Checksum*[j * 100];        // create the objects    //    for (long i = 0; i < j * 100; i++) {      dyn_cal[i] = new Checksum();    }        // delete objects    //    for (long i = (j * 100) - 1; i >= 0; i--) {      delete dyn_cal[i];    }          delete [] dyn_cal;  }  // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }  //---------------------------------------------------------------------  //  // 2. class-specific public methods  //     set and get methods  //  //---------------------------------------------------------------------  // set indentation  //  if (level_a > Integral::NONE) {    Console::put(L"testing class-specific public methods: set and get methods...\n");    Console::increaseIndention();   }  // set the algorithm  //  Checksum cksm_6;  if (!cksm_6.setAlgorithm(CRC_16_CCITT)) {    return Error::handle(name(), L"set algorithm", Error::TEST,			 __FILE__, __LINE__);  }    // set the implementation  //  if (!cksm_6.setImplementation(FAST)) {    return Error::handle(name(), L"set implementation", Error::TEST,			 __FILE__, __LINE__);  }  // get the algorithm  //  if (cksm_6.getAlgorithm() != CRC_16_CCITT) {    return Error::handle(name(), L"get algorithm", Error::TEST,			 __FILE__, __LINE__);  }    // get the implementation  //  if (cksm_6.getImplementation() != FAST) {    return Error::handle(name(), L"get implementation", Error::TEST,			 __FILE__, __LINE__);  }  //---------------------------------------------------------------------  //  // 3. class-specific public methods  //     initialization and computational methods  //  //---------------------------------------------------------------------    // create some reference data  //  SysString input_1(L"Joe");  SysString input_2(L"abcdefghijkl");  ulong answer_1 = 42810;  ulong answer_2 = 15564;  // compute answer_1  //  Console::increaseIndention();  cksm_6.init();  cksm_6.compute(input_1);  ulong result = cksm_6.get();  Console::decreaseIndention();    // finally, check the result  //  if (result != answer_1) {    return  Error::handle(name(), L"compute", ERR,			  __FILE__, __LINE__);  }  // compute answer_2  //  Console::increaseIndention();  cksm_6.init();  cksm_6.compute(input_2);  result = cksm_6.get();  Console::decreaseIndention();    // finally, check the result  //  if (result != answer_2) {    return  Error::handle(name(), L"compute", ERR,			  __FILE__, __LINE__);  }  // compute answer_1 through the byte interface  //  cksm_6.init();  cksm_6.compute((byte*)input_1, input_1.length());  result = cksm_6.get();  if (result != answer_1) {    return  Error::handle(name(), L"compute", ERR,			  __FILE__, __LINE__);  }  // compute answer_2 through the byte interface  //  cksm_6.init();  cksm_6.compute((byte*)input_2, input_2.length());  result = cksm_6.get();  if (result != answer_2) {    return  Error::handle(name(), L"compute", ERR,			  __FILE__, __LINE__);  }    // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }    //---------------------------------------------------------------------  //  // 4. print completion message  //  //---------------------------------------------------------------------  // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }    if (level_a > Integral::NONE) {    SysString output(L"diagnostics passed for class");    output.concat(name());    output.concat(L"\n");    Console::put(output);  }  // exit gracefully  //  return true;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -