/[escript]/trunk/escript/test/DataTagged/DataTaggedTestCase.cpp
ViewVC logotype

Diff of /trunk/escript/test/DataTagged/DataTaggedTestCase.cpp

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

revision 502 by jgs, Wed Feb 8 03:57:20 2006 UTC revision 503 by jgs, Wed Feb 8 04:25:40 2006 UTC
# Line 16  Line 16 
16  #include "EsysException.h"  #include "EsysException.h"
17    
18  #include "DataTagged.h"  #include "DataTagged.h"
19    #include "DataConstant.h"
20    
21  #include "DataTaggedTestCase.h"  #include "DataTaggedTestCase.h"
22    
# Line 1633  void DataTaggedTestCase::testAll() { Line 1634  void DataTaggedTestCase::testAll() {
1634    
1635  }  }
1636    
1637    void DataTaggedTestCase::testCopyConstructors() {
1638    
1639      cout << endl;
1640    
1641      {
1642    
1643        cout << "\tTest DataTagged copy constructor for DataTagged with multiple tags." << endl;
1644    
1645        // the one data-point has tag value "1"
1646    
1647        DataTagged::TagListType keys;
1648        keys.push_back(1);
1649        keys.push_back(2);
1650        keys.push_back(3);
1651    
1652        DataTagged::ValueListType values;
1653    
1654        DataArrayView::ShapeType viewShape;
1655        viewShape.push_back(3);
1656    
1657        // default value
1658        DataArrayView::ValueType viewData(3);
1659        for (int i=0;i<viewShape[0];i++) {
1660          viewData[i]=i;
1661        }
1662        DataArrayView myView(viewData,viewShape);
1663    
1664        // value for tag "1"
1665        DataArray eOne(myView);
1666        for (int i=0;i<eOne.getView().getShape()[0];i++) {
1667          eOne.getView()(i)=i+1.0;
1668        }
1669        values.push_back(eOne.getView());
1670    
1671        // value for tag "2"
1672        DataArray eTwo(myView);
1673        for (int i=0;i<eTwo.getView().getShape()[0];i++) {
1674          eTwo.getView()(i)=i+2.0;
1675        }
1676        values.push_back(eTwo.getView());
1677    
1678        // value for tag "3"
1679        DataArray eThree(myView);
1680        for (int i=0;i<eThree.getView().getShape()[0];i++) {
1681          eThree.getView()(i)=i+3.0;
1682        }
1683        values.push_back(eThree.getView());
1684    
1685        DataTagged myData(keys,values,myView,FunctionSpace());
1686    
1687        DataTagged myDataCopy(myData);
1688    
1689        //cout << myDataCopy.toString() << endl;
1690    
1691        assert(myDataCopy.getNumSamples()==1);
1692        assert(myDataCopy.getNumDPPSample()==1);
1693    
1694        assert(myDataCopy.validSamplePointNo(0));
1695        assert(myDataCopy.validSampleNo(0));
1696        assert(!myDataCopy.validSamplePointNo(1));
1697        assert(!myDataCopy.validSampleNo(1));
1698    
1699        // data-point 0 has tag number 1 by default
1700        assert(myDataCopy.getTagNumber(0)==1);
1701    
1702        assert(!myDataCopy.isCurrentTag(0));
1703        assert(myDataCopy.isCurrentTag(1));
1704        assert(myDataCopy.isCurrentTag(2));
1705        assert(myDataCopy.isCurrentTag(3));
1706    
1707        assert(myDataCopy.getTagLookup().size()==3);
1708    
1709        assert(myDataCopy.getLength()==12);
1710    
1711        assert(myDataCopy.getPointOffset(0,0)==3);
1712    
1713        DataArrayView myDataView = myDataCopy.getDataPoint(0,0);
1714        assert(myDataView==eOne.getView());
1715        assert(!myDataView.isEmpty());
1716        assert(myDataView.getOffset()==3);
1717        assert(myDataView.getRank()==1);
1718        assert(myDataView.noValues()==3);
1719        assert(myDataView.getShape().size()==1);
1720        assert(myDataView(0)==1);
1721        assert(myDataView(1)==2);
1722        assert(myDataView(2)==3);
1723    
1724        myDataView = myDataCopy.getDataPointByTag(1);
1725        assert(myDataView==eOne.getView());
1726        assert(!myDataView.isEmpty());
1727        assert(myDataView.getOffset()==3);
1728        assert(myDataView.getRank()==1);
1729        assert(myDataView.noValues()==3);
1730        assert(myDataView.getShape().size()==1);
1731        assert(myDataView(0)==1);
1732        assert(myDataView(1)==2);
1733        assert(myDataView(2)==3);
1734    
1735        // Test non-existent tag returns the default value.
1736        myDataView = myDataCopy.getDataPointByTag(0);
1737        assert(myDataView==myView);
1738        assert(!myDataView.isEmpty());
1739        assert(myDataView.getOffset()==0);
1740        assert(myDataView.getRank()==1);
1741        assert(myDataView.noValues()==3);
1742        assert(myDataView.getShape().size()==1);
1743        assert(myDataView(0)==0);
1744        assert(myDataView(1)==1);
1745        assert(myDataView(2)==2);
1746    
1747        myDataView = myDataCopy.getDefaultValue();
1748        assert(myDataView==myView);
1749        assert(!myDataView.isEmpty());
1750        assert(myDataView.getOffset()==0);
1751        assert(myDataView.getRank()==1);
1752        assert(myDataView.noValues()==3);
1753        assert(myDataView.getShape().size()==1);
1754        assert(myDataView(0)==0);
1755        assert(myDataView(1)==1);
1756        assert(myDataView(2)==2);
1757    
1758        // Test data-points held for remaining tags
1759        myDataView = myDataCopy.getDataPointByTag(2);
1760        assert(myDataView==eTwo.getView());
1761        assert(!myDataView.isEmpty());
1762        assert(myDataView.getOffset()==6);
1763        assert(myDataView.getRank()==1);
1764        assert(myDataView.noValues()==3);
1765        assert(myDataView.getShape().size()==1);
1766        assert(myDataView(0)==2);
1767        assert(myDataView(1)==3);
1768        assert(myDataView(2)==4);
1769    
1770        myDataView = myDataCopy.getDataPointByTag(3);
1771        assert(myDataView==eThree.getView());
1772        assert(!myDataView.isEmpty());
1773        assert(myDataView.getOffset()==9);
1774        assert(myDataView.getRank()==1);
1775        assert(myDataView.noValues()==3);
1776        assert(myDataView.getShape().size()==1);
1777        assert(myDataView(0)==3);
1778        assert(myDataView(1)==4);
1779        assert(myDataView(2)==5);
1780    
1781      }
1782    
1783      {
1784    
1785        cout << "\tTest DataTagged copy constructor for DataConstant." << endl;
1786    
1787        // Create a DataConstant
1788        DataArrayView::ShapeType shape;
1789        DataArrayView::ValueType data(DataArrayView::noValues(shape),0);
1790        DataArrayView pointData(data,shape);
1791        pointData()=1.0;
1792        DataConstant myConstantData(pointData, FunctionSpace());
1793    
1794        // use this DataConstant to initialise a DataTagged
1795        DataTagged myData(myConstantData);
1796    
1797        //cout << myData.toString() << endl;
1798    
1799        assert(myData.getNumSamples()==1);
1800        assert(myData.getNumDPPSample()==1);
1801    
1802        assert(myData.validSamplePointNo(0));
1803        assert(myData.validSampleNo(0));
1804        assert(!myData.validSamplePointNo(1));
1805        assert(!myData.validSampleNo(1));
1806    
1807        // data-point 0 has tag number 1 by default
1808        assert(myData.getTagNumber(0)==1);
1809    
1810        assert(!myData.isCurrentTag(1));
1811    
1812        assert(myData.getTagLookup().size()==0);
1813    
1814        assert(myData.getLength()==1);
1815    
1816        assert(myData.getPointOffset(0,0)==0);
1817    
1818        DataArrayView myDataView = myData.getDataPoint(0,0);
1819        assert(!myDataView.isEmpty());
1820        assert(myDataView.getOffset()==0);
1821        assert(myDataView.getRank()==0);
1822        assert(myDataView.noValues()==1);
1823        assert(myDataView.getShape().size()==0);
1824        assert(myDataView()==1.0);
1825    
1826        // Test non-existent tag returns the default value.
1827        myDataView = myData.getDataPointByTag(1);
1828        assert(!myDataView.isEmpty());
1829        assert(myDataView.getOffset()==0);
1830        assert(myDataView.getRank()==0);
1831        assert(myDataView.noValues()==1);
1832        assert(myDataView.getShape().size()==0);
1833        assert(myDataView()==1.0);
1834    
1835        myDataView = myData.getDefaultValue();
1836        assert(!myDataView.isEmpty());
1837        assert(myDataView.getOffset()==0);
1838        assert(myDataView.getRank()==0);
1839        assert(myDataView.noValues()==1);
1840        assert(myDataView.getShape().size()==0);
1841        assert(myDataView()==1.0);
1842    
1843      }
1844    
1845    }
1846    
1847  TestSuite* DataTaggedTestCase::suite ()  TestSuite* DataTaggedTestCase::suite ()
1848  {  {
1849    //    //
# Line 1641  TestSuite* DataTaggedTestCase::suite () Line 1852  TestSuite* DataTaggedTestCase::suite ()
1852    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testAll",&DataTaggedTestCase::testAll));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testAll",&DataTaggedTestCase::testAll));
1853    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testAddTaggedValues",&DataTaggedTestCase::testAddTaggedValues));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testAddTaggedValues",&DataTaggedTestCase::testAddTaggedValues));
1854    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testSetTaggedValue",&DataTaggedTestCase::testSetTaggedValue));    testSuite->addTest (new TestCaller< DataTaggedTestCase>("testSetTaggedValue",&DataTaggedTestCase::testSetTaggedValue));
1855      testSuite->addTest (new TestCaller< DataTaggedTestCase>("testCopyConstructors",&DataTaggedTestCase::testCopyConstructors));
1856  //  testSuite->addTest (new TestCaller< DataTaggedTestCase>("testOperations",&DataTaggedTestCase::testOperations));  //  testSuite->addTest (new TestCaller< DataTaggedTestCase>("testOperations",&DataTaggedTestCase::testOperations));
1857  //  testSuite->addTest (new TestCaller< DataTaggedTestCase>("testReshape",&DataTaggedTestCase::testReshape));  //  testSuite->addTest (new TestCaller< DataTaggedTestCase>("testReshape",&DataTaggedTestCase::testReshape));
1858    return testSuite;    return testSuite;

Legend:
Removed from v.502  
changed lines
  Added in v.503

  ViewVC Help
Powered by ViewVC 1.1.26