Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please test const object test for int dynamic array. Please test DynamicArray version as well ============================================== #ifndef DynamicArray_h #define DynamicArray_h template class DynamicArray { T

Please test const object test for int dynamic array.

Please test DynamicArray version as well

==============================================

#ifndef DynamicArray_h #define DynamicArray_h

template class DynamicArray { T *values; int cap; T dummy=T(); public: DynamicArray(int=2); // constructor // default=2 DynamicArray(const DynamicArray&); // copy constructor ~DynamicArray(){ delete [] values;} // destructor DynamicArray& operator=(const DynamicArray&); // assignment operator int capacity() const {return cap;} void capacity(int); // setter T operator[](int) const; // getter version T& operator[](int); // setter version };

template DynamicArray::DynamicArray(int cap) // constructor { dummy=T(); values=new T[cap]; this->cap=cap; for(int i=0; i values[i]=T(); }

template DynamicArray::DynamicArray(const DynamicArray& original) // copy constructor { cap=original.cap; values=new T[cap]; for(int i=0; i values[i]=original.values[i]; dummy=original.dummy; }

template DynamicArray& DynamicArray::operator=(const DynamicArray& original) { if(this!=&original) { delete [] values; cap=original.cap; values=new T[cap]; for(int i=0; i values[i]=original.values[i]; dummy=original.dummy; } return *this; }

template void DynamicArray::capacity(int cap) { T *temp=new T[cap]; int limit=(capcap ?cap: this->cap); for(int i=0; i temp[i]=values[i]; for(int i=limit; i temp[i]=T(); delete values; values=temp; this->cap=cap; }

template T DynamicArray::operator[](int index) const // getter { if(index<0) return dummy; if(index>=cap) capacity(2*index); return values[index]; }

template T& DynamicArray::operator[](int index) // setter { if(index<0) return dummy; if(index>=cap) capacity(2*index); return values[index]; }

#endif

============================================== #include #include

using namespace std;

#include

#include "DynamicArray.h" #include "DynamicArray.h" // test

int main() { cout << "file: " << __FILE__ << " "; // 1 Test all public functions cout << "============================================ "; DynamicArray a(100); cout << "Int DynamicArray Test: "; cout << "============================================ "; cout << "Testing DynamicArray::DynamicArray "; // constractor test for(int i=0; i<100; i++) assert(a[i]==0); cout << "Pass! "; cout << " Testing DynamicArray::capacity "; cout << "Expected: 100 "; cout << "ACTUAL: " << a.capacity(); assert(a.capacity()==100); //StaticArray::operator[]setter cout << " Testing the DynamicArray::operator[]setter "; a[10]=1; cout << "Expected: 1 for a[10] "; cout << "ACTUAL: " << a[10] << endl; assert(a[10]==1); a[-1000]=666; cout << " Expected: 666 for a[-1000] (dummy) "; cout << "ACTUAL: " << a[-1000] << endl; assert(a[-1000]==666); a[200]=10; cout << "Expected: the new capacity for a is 200*2 "; cout << "ACTUAL: " << a.capacity() << endl;

cout << " Testing the DynamicArray::operator[]getter "; DynamicArray a2 = a; for(int i=0; i<100; i++) assert(a[i]==a2[i]); cout << "Pass! ";

// 2 Const object test /* const DynamicArray c1(100); assert(c1.capacity()); assert(c1[0]==c1[0]); assert(c1[-1]==c1[-1]);*/ // 3 Object copy test

cout << " Object copy test "; DynamicArray a3=a; assert(a.capacity()==a3.capacity()); for(int i=0; i assert(a[i]==a3[i]); for(int i=0; i { a[i]++; assert(a[i]!=a3[i]); } cout << "Pass! "; // Object assignment test cout << " Object assignment test "; DynamicArray ob; ob=a; assert(a.capacity()==ob.capacity()); for(int i=0; i assert(a[i]==ob[i]); for(int i=0; i { a[i]++; assert(a[i]!=ob[i]); } cout << "Pass! "; return 0; }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Spatio Temporal Database Management International Workshop Stdbm 99 Edinburgh Scotland September 10 11 1999 Proceedings Lncs 1678

Authors: Michael H. Bohlen ,Christian S. Jensen ,Michel O. Scholl

1999th Edition

3540664017, 978-3540664017

More Books

Students also viewed these Databases questions

Question

4. Label problematic uses of language and their remedies

Answered: 1 week ago