text: 
  #include <random>
  
  #include "CLE.h"
  
  /**
   * Main test function
   *
   */
  int main(int argc, char **argv)
  {
      // Initialise random input and valid output.
      unsigned int width (10), height (10), depth (10);
      unsigned int dims[3] = {width, height, depth}; 
      std::vector<float> input_data (width*height*depth);
      std::vector<float> valid_data (width*height*depth);
      float scalar = 50.0f;
      for (size_t i = 0; i < width*height*depth; i++)
      {
          if (i%2 == 0)
          {
              input_data[i] = 0;
              valid_data[i] = 0;
          }
          else
          {
              input_data[i] = 50;
              valid_data[i] = 1;
          }
      }
  
      // Initialise GPU information.
      cle::GPU gpu;
      cle::CLE cle(gpu);
  
      // Initialise device memory and push from host to device
      cle::Buffer Buffer_A = cle.Push<float>(input_data, dims);
      cle::Buffer Buffer_B = cle.Create<float>(dims);
  
      // Call kernel
      cle.GreaterOrEqualConstant(Buffer_A, Buffer_B, scalar);  
  
      // pull device memory to host
      std::vector<float> output_data = cle.Pull<float>(Buffer_B);    
  
      // Verify output
      float difference = 0;
      for (size_t i = 0; i < output_data.size(); i++)
      {
          difference += std::abs(valid_data[i] - output_data[i]);
      }
      if (difference > std::numeric_limits<float>::epsilon())
      {
          std::cout << "Test failed, cumulated absolute difference " << difference << " > CPU epsilon (" << std::numeric_limits<float>::epsilon() << ")" << std::endl;
          return EXIT_FAILURE;
      }
  
      // That's all folks!
      std::cout << "Test succeded!"<< std::endl;
      return EXIT_SUCCESS;
  }