コード例 #1
0
ファイル: main.cpp プロジェクト: dpaiton/OpenPV
int assertAllZeroes(HyPerCol * hc, int argc, char * argv[]) {
   const char * targetLayerName = "comparison";
   HyPerLayer * layer = hc->getLayerFromName(targetLayerName);
   assert(layer);
   LayerProbe * probe = NULL;
   int np = layer->getNumProbes();
   for (int p=0; p<np; p++) {
      if (!strcmp(layer->getProbe(p)->getName(), "ComparisonTest")) {
         probe = layer->getProbe(p);
         break;
      }
   }
   RequireAllZeroActivityProbe * allzeroProbe = dynamic_cast<RequireAllZeroActivityProbe *>(probe);
   assert(allzeroProbe);
   if (allzeroProbe->getNonzeroFound()) {
      if (hc->columnId()==0) {
         double t = allzeroProbe->getNonzeroTime();
         fprintf(stderr, "%s \"%s\" had at least one nonzero activity value, beginning at time %f\n",
               layer->getKeyword(), targetLayerName, t);
      }
      MPI_Barrier(hc->icCommunicator()->communicator());
      exit(EXIT_FAILURE);
   }
   return PV_SUCCESS;
}
コード例 #2
0
ファイル: main.cpp プロジェクト: gitter-badger/OpenPV
int customexit(HyPerCol * hc, int argc, char * argv[]) {
   HyPerLayer * layer = hc->getLayerFromName("comparison");
   assert(layer!=NULL);
   assert(layer->getNumProbes()>0);
   RequireAllZeroActivityProbe * probe = NULL;
   for (int k=0; k<layer->getNumProbes(); k++) {
      LayerProbe * p = layer->getProbe(k);
      probe = dynamic_cast<RequireAllZeroActivityProbe *>(p);
      if (probe != NULL) { break; }
   }
   assert(probe!=NULL);
   int status = PV_SUCCESS;
   if (probe->getNonzeroFound()) {
      if (hc->columnId()==0) {
         fprintf(stderr, "comparison layer had a nonzero activity at time %f\n", probe->getNonzeroTime());
         status = PV_FAILURE;
      }
   }
   return status;
}
コード例 #3
0
// check that the input layer has become nonzero at some point
// If the comparison layer ever has a nonzero value, TestAllZerosProbe
// should catch it and exit with an error.
// However, there are some bugs that could cause Movie to
// have all zeros in the activity.  In that case, OriginalMovie and
// GeneratedMovie would always be zero, so the comparison would always
// be zero, so the test would pass even though there's a bug.
//
// The problem of what to do if comparison reports zero when given
// nonzero input is best left for a different test.
int checkProbesOnExit(HyPerCol * hc, int argc, char * argv[]) {
   BaseLayer * layer = hc->getLayerFromName("OriginalMovie");
   assert(layer);
   HyPerLayer * originalMovieLayer = dynamic_cast<HyPerLayer *>(layer);
   assert(originalMovieLayer);
   int numProbes = originalMovieLayer->getNumProbes();
   assert(numProbes==1);
   LayerProbe * originalMovieProbe = originalMovieLayer->getProbe(0);
   assert(originalMovieProbe);
   TestNotAlwaysAllZerosProbe * testNonzero = dynamic_cast<TestNotAlwaysAllZerosProbe *>(originalMovieProbe);
   assert(testNonzero->nonzeroValueHasOccurred());

   return PV_SUCCESS;
}