/[escript]/branches/arrayview_from_1695_trunk/escript/test/DataArrayViewTestCase.cpp
ViewVC logotype

Diff of /branches/arrayview_from_1695_trunk/escript/test/DataArrayViewTestCase.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/escript/test/DataArrayView/DataArrayViewTestCase.cpp revision 468 by jgs, Wed Jan 25 06:50:39 2006 UTC trunk/escript/test/DataArrayViewTestCase.cpp revision 713 by gross, Thu Apr 27 05:03:44 2006 UTC
# Line 11  Line 11 
11   *                                                                           *   *                                                                           *
12   *****************************************************************************   *****************************************************************************
13  */  */
14  #include "escript/Data/DataArray.h"  #include "escript/DataArray.h"
15  #include "escript/Data/DataArrayView.h"  #include "escript/DataArrayView.h"
16  #include "escript/Data/DataAlgorithm.h"  #include "escript/DataAlgorithm.h"
17  #include "EsysException.h"  #include "esysUtils/EsysException.h"
18    
19  #include "DataArrayViewTestCase.h"  #include "DataArrayViewTestCase.h"
20    
# Line 1582  void DataArrayViewTestCase::testAll() Line 1582  void DataArrayViewTestCase::testAll()
1582    
1583    }    }
1584    
1585      #if defined DOASSERT
1586    {    {
1587      cout << endl;      cout << endl;
1588      cout << "\tTest too many indices for shape exception.";      cout << "\tTest too many indices for shape exception.";
# Line 1626  void DataArrayViewTestCase::testAll() Line 1627  void DataArrayViewTestCase::testAll()
1627      }      }
1628    
1629    }    }
1630      #endif
1631    
1632      #if defined DOASSERT
1633    {    {
1634      cout << endl;      cout << endl;
1635      cout << "\tTest invalid index exception.";      cout << "\tTest invalid index exception.";
# Line 1644  void DataArrayViewTestCase::testAll() Line 1647  void DataArrayViewTestCase::testAll()
1647        assert(true);        assert(true);
1648      }      }
1649    }    }
1650      #endif
1651    
1652    {    {
1653      cout << endl;      cout << endl;
# Line 1747  void DataArrayViewTestCase::testUnaryOp( Line 1751  void DataArrayViewTestCase::testUnaryOp(
1751    
1752        // check the results        // check the results
1753        tmp = std::sin((double)p);        tmp = std::sin((double)p);
1754        assert(dataView()==tmp);        assert(std::abs(dataView()-tmp)<=REL_TOL*std::abs(tmp));
1755    
1756        if (p<npoints-1) {        if (p<npoints-1) {
1757          dataView.incrOffset();          dataView.incrOffset();
# Line 1789  void DataArrayViewTestCase::testUnaryOp( Line 1793  void DataArrayViewTestCase::testUnaryOp(
1793        // check the results        // check the results
1794        for (int i=0;i<shape[0];i++) {        for (int i=0;i<shape[0];i++) {
1795          for (int j=0;j<shape[1];j++) {          for (int j=0;j<shape[1];j++) {
1796            assert(dataView(i,j)==std::sqrt((double)dataView.index(i,j)));            assert(std::abs(dataView(i,j)-std::sqrt((double)dataView.index(i,j)))<=REL_TOL*std::sqrt((double)dataView.index(i,j)));
1797          }          }
1798        }        }
1799    
# Line 1827  void DataArrayViewTestCase::testUnaryOp( Line 1831  void DataArrayViewTestCase::testUnaryOp(
1831          for (int j=0;j<shape[1];j++) {          for (int j=0;j<shape[1];j++) {
1832            for (int k=0;k<shape[2];k++) {            for (int k=0;k<shape[2];k++) {
1833              for (int l=0;l<shape[3];l++) {              for (int l=0;l<shape[3];l++) {
1834                dataView(i,j,k,l)=dataView.index(i,j,k,l);                dataView(i,j,k,l)=dataView.index(i,j,k,l)+1;
1835              }              }
1836            }            }
1837          }          }
# Line 1841  void DataArrayViewTestCase::testUnaryOp( Line 1845  void DataArrayViewTestCase::testUnaryOp(
1845          for (int j=0;j<shape[1];j++) {          for (int j=0;j<shape[1];j++) {
1846            for (int k=0;k<shape[2];k++) {            for (int k=0;k<shape[2];k++) {
1847              for (int l=0;l<shape[3];l++) {              for (int l=0;l<shape[3];l++) {
1848                assert(dataView(i,j,k,l)==std::log((double)dataView.index(i,j,k,l)));                assert(std::abs(dataView(i,j,k,l)-std::log(1+(double)dataView.index(i,j,k,l)))<=REL_TOL*std::abs(std::log(1+(double)dataView.index(i,j,k,l))));
1849              }              }
1850            }            }
1851          }          }
# Line 2078  void DataArrayViewTestCase::testBinaryOp Line 2082  void DataArrayViewTestCase::testBinaryOp
2082        for (int i=0;i<shape[0];i++) {        for (int i=0;i<shape[0];i++) {
2083          for (int j=0;j<shape[1];j++) {          for (int j=0;j<shape[1];j++) {
2084            tmp=5.8*dataView.index(i,j);            tmp=5.8*dataView.index(i,j);
2085            assert(dataView(i,j)==tmp);            assert(std::abs(dataView(i,j)-tmp)<=REL_TOL*std::abs(tmp));
2086          }          }
2087        }        }
2088    
# Line 2132  void DataArrayViewTestCase::testBinaryOp Line 2136  void DataArrayViewTestCase::testBinaryOp
2136            for (int k=0;k<shape[2];k++) {            for (int k=0;k<shape[2];k++) {
2137              for (int l=0;l<shape[3];l++) {              for (int l=0;l<shape[3];l++) {
2138                tmp=5.4*dataView.index(i,j,k,l);                tmp=5.4*dataView.index(i,j,k,l);
2139                assert(dataView(i,j,k,l)==tmp);                assert(std::abs(dataView(i,j,k,l)-tmp)<=REL_TOL*std::abs(tmp));
2140              }              }
2141            }            }
2142          }          }
# Line 2175  void DataArrayViewTestCase::testReductio Line 2179  void DataArrayViewTestCase::testReductio
2179    
2180        // apply a reduction operation to this data point and check the results        // apply a reduction operation to this data point and check the results
2181        FMax fmax_func;        FMax fmax_func;
2182        assert(dataView.reductionOp(fmax_func,numeric_limits<double>::max()*-1)==p);        assert(std::abs(dataView.reductionOp(fmax_func,numeric_limits<double>::max()*-1)-p)<=REL_TOL*p);
2183    
2184        if (p<npoints-1) {        if (p<npoints-1) {
2185          dataView.incrOffset();          dataView.incrOffset();
# Line 2213  void DataArrayViewTestCase::testReductio Line 2217  void DataArrayViewTestCase::testReductio
2217    
2218        // apply a reduction operation to this data point and check the results        // apply a reduction operation to this data point and check the results
2219        FMin fmin_func;        FMin fmin_func;
2220        assert(dataView.reductionOp(fmin_func,numeric_limits<double>::max())==dataView.index(0,0));        assert(std::abs(dataView.reductionOp(fmin_func,numeric_limits<double>::max())-dataView.index(0,0))<=REL_TOL*std::abs(dataView.index(0,0)));
2221    
2222        if (p<npoints-1) {        if (p<npoints-1) {
2223          dataView.incrOffset();          dataView.incrOffset();

Legend:
Removed from v.468  
changed lines
  Added in v.713

  ViewVC Help
Powered by ViewVC 1.1.26