ArrayConversions_UnitTest_helpers.hpp

Go to the documentation of this file.
00001 
00002 #ifndef ARRAY_CONVERSIONS_UNIT_TEST_HELPERS
00003 #define ARRAY_CONVERSIONS_UNIT_TEST_HELPERS
00004 
00005 
00006 namespace ArrayConversionsUnitTestHelpers {
00007 
00008 
00009 using Teuchos::RCP;
00010 using Teuchos::rcp;
00011 using Teuchos::Ptr;
00012 using Teuchos::Array;
00013 using Teuchos::ArrayView;
00014 using Teuchos::as;
00015 
00016 extern Teuchos_Ordinal n;
00017 
00018 
00019 template<class T>
00020 Array<RCP<T> > generateArrayRcp(const Teuchos_Ordinal n_in)
00021 {
00022   Array<RCP<T> > a(n_in);
00023   for (Teuchos_Ordinal i=0 ; i<n_in ; ++i) {
00024     RCP<T> data = rcp(new T(as<T>(i)));
00025     a[i] = data;
00026   }
00027   return a;
00028 }
00029 
00030 
00031 template<class T>
00032 Array<RCP<T> > generateArrayRcpGen(const Teuchos_Ordinal n_in)
00033 {
00034   Array<RCP<T> > a;
00035   for (Teuchos_Ordinal i=0 ; i<n_in ; ++i) {
00036     a.push_back(rcp(new T));
00037   }
00038   return a;
00039 }
00040 
00041 
00042 template<class T>
00043 T testArrayViewInput(const ArrayView<const Ptr<const T> >& a_in)
00044 {
00045   typedef Teuchos::ScalarTraits<T> ST;
00046   T a = ST::zero();
00047   for (Teuchos_Ordinal i=0; i<a_in.size(); ++i) {
00048     a += *a_in[i];
00049   }
00050   return a;
00051 }
00052 
00053 
00054 template<class T>
00055 void testArrayViewOutput(const ArrayView<const Ptr<T> >& a_out)
00056 {
00057   typedef Teuchos::ScalarTraits<T> ST;
00058   for (Teuchos_Ordinal i=0 ; i<a_out.size() ; ++i) {
00059     *a_out[i] = as<T>(i);
00060   }
00061 }
00062 
00063 
00064 } // namespace ArrayConversionsUnitTestHelpers 
00065 
00066 
00067 #endif // ARRAY_CONVERSIONS_UNIT_TEST_HELPERS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Wed Apr 13 09:57:27 2011 for Teuchos Package Browser (Single Doxygen Collection) by  doxygen 1.6.3