aboutsummaryrefslogtreecommitdiff
path: root/src/AMRPlus/settst.C
blob: 743791b09a08dc6548acd751334ebf9da57dcd73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream.h>
#include "flexset.h"
#include <unistd.h>

int iseven(const int &y){return !(y&1);}
struct orec;
struct irec{
    int key, data;
    irec(int nkey=0, int ndata=0){key=nkey;data=ndata;}
    int operator<(const irec &b) const{return key<b.key;}
    int operator==(const irec &b) const{return key==b.key;}
    int operator<(const orec &b) const;
    int operator==(const orec &b) const;
};

struct orec{
    int key;
    char *str;
    orec(int nkey=0){key=nkey;}
    int operator<(const orec &b) const{return key<b.key;}
    int operator==(const orec &b) const{return key==b.key;}
    int operator<(const irec &b) const{return key<b.key;}
    int operator==(const irec &b) const{return key==b.key;}
};

int irec::operator<(const orec &b) const{return key<b.key;};
int irec::operator==(const orec &b) const{return key<b.key;};
    
void main(){
    flexset<irec> arr1, arr2, arr3, arr4, arr5;
    flexset<orec> iarr1, iarr2;
    irec tst;
    int ii;
  
    for (ii=0;ii<20;ii++){
	tst.key=rand()%20; 
	tst.data=ii; 
	arr1.insert(tst);
    }
    
    for (ii=0;ii<20;ii++){
	iarr1.insert(rand()%20);
    }
    
    setdifferences(arr1, iarr1, arr2, iarr2);
    for (ii=0;ii<arr1.getSize();ii++)
	cout<<arr1[ii].key<<"   :   "<<arr1[ii].data<<endl;
    cout<<endl;
    for (ii=0;ii<iarr1.getSize();ii++)
	cout<<iarr1[ii].key<<endl;
    cout<<endl;
    for (ii=0;ii<arr2.getSize();ii++)
	cout<<arr2[ii].key<<"   :   "<<arr2[ii].data<<endl;
    cout<<endl;
    for (ii=0;ii<iarr2.getSize();ii++)
	cout<<iarr2[ii].key<<endl;
    cout<<endl;
   
}