ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/ccscs20/UnitTest.cpp
Revision: 10
Committed: 2004-05-14T13:57:49-07:00 (21 years, 1 month ago) by Douglas Thrift
File size: 1754 byte(s)
Log Message:
Visit this!

File Contents

# User Rev Content
1 Douglas Thrift 1 // Unit Test
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7 Douglas Thrift 4 #include <iostream>
8     #include <string>
9 Douglas Thrift 1 #include "DoublyLinkedList.hpp"
10    
11 Douglas Thrift 4 using namespace std;
12    
13 Douglas Thrift 9 template<typename Type>
14     bool contains(const Type& value, DoublyLinkedList<Type>& list)
15     {
16     for (Iterator<Type> itor(list.iterator()); !itor.end(); itor++)
17     {
18     if (*itor == value) return true;
19     }
20    
21     return false;
22     }
23    
24 Douglas Thrift 10 class VowelVisitor : public Visitor<string>
25     {
26     public:
27     void visit(const string& value) { if (value.find_first_of("aAeEiIoOuU") == 0) cout << value << '\n'; }
28     };
29    
30 Douglas Thrift 1 int main(int argc, char* argv[])
31     {
32 Douglas Thrift 6 cout.setf(ios_base::boolalpha);
33    
34 Douglas Thrift 1 DoublyLinkedList<int> list;
35    
36 Douglas Thrift 4 list.addFront(1);
37     list.addBack(2);
38 Douglas Thrift 6 list.addFront(4);
39     list.addBack(5);
40 Douglas Thrift 4
41 Douglas Thrift 7 // 4 1 2 5
42    
43 Douglas Thrift 4 cout << "list.contains(1) = " << list.contains(1) << '\n'
44 Douglas Thrift 6 << "list.contains(2) = " << list.contains(2) << '\n'
45     << "list.contains(3) = " << list.contains(3) << '\n'
46     << "list.contains(4) = " << list.contains(4) << '\n'
47     << "list.contains(5) = " << list.contains(5) << '\n';
48 Douglas Thrift 4
49 Douglas Thrift 6 list.removeFirst(2);
50    
51 Douglas Thrift 7 // 4 1 5
52 Douglas Thrift 6
53 Douglas Thrift 7 cout << "list.contains(2) = " << list.contains(2) << '\n'
54     << "list.contains(5) = " << list.contains(5) << '\n';
55    
56 Douglas Thrift 8 for (Iterator<int> itor(list.iterator()); !itor.end(); itor++)
57 Douglas Thrift 7 {
58     cout << *itor << '\n';
59     }
60    
61 Douglas Thrift 9 cout << "contains(3, list) = " << contains(3, list) << '\n'
62     << "contains(4, list) = " << contains(4, list) << '\n';
63    
64     DoublyLinkedList<string> words;
65    
66     words.addFront("Douglas");
67     words.addBack("Allen");
68     words.addFront("Edward");
69     words.addBack("attack");
70     words.addFront("Thrift");
71    
72     for (Iterator<string> itor(words.iterator()); !itor.end(); itor++)
73     {
74     if (itor->find_first_of("aAeEiIoOuU") == 0) cout << *itor << '\n';
75     }
76    
77 Douglas Thrift 10 VowelVisitor vowels;
78    
79     words.accept(dynamic_cast<Visitor<string>*>(&vowels));
80    
81 Douglas Thrift 1 return 0;
82     }

Properties

Name Value
svn:eol-style native
svn:keywords Id