+#include <iostream>
 #include <unittest/unittest.h>
 #include <thrust/sort.h>
 #include <thrust/memory.h>


void TestSelectSystemDifferentTypes()
{
  // XXX different systems handle this differently, so it's impossible to test it right now
  KNOWN_FAILURE;
}
DECLARE_UNITTEST(TestSelectSystemDifferentTypes);


DECLARE_UNITTEST(TestSelectSystemSameTypes);


//template<typename T>
//  thrust::pair<thrust::pointer<T,my_tag>, std::ptrdiff_t>
//    get_temporary_buffer(my_tag, std::ptrdiff_t n)
//{
//  // communicate that my version of get_temporary_buffer
//  // was correctly dispatched
//  throw my_tag();
//}
//
void TestGetTemporaryBufferDispatchImplicit()
{
  KNOWN_FAILURE;

//  bool correctly_dispatched = false;
//
//  try
//  {
//    thrust::device_vector<int> vec(2);
//
//    // call something we know will invoke get_temporary_buffer
//    thrust::sort(thrust::retag<my_tag>(vec.begin()),
//                 thrust::retag<my_tag>(vec.end()));
//  }
//  catch(my_tag)
//  {
//    correctly_dispatched = true;
//  }
//
//  ASSERT_EQUAL(true, correctly_dispatched);
}
DECLARE_UNITTEST(TestGetTemporaryBufferDispatchImplicit);

