source:
tests/vector.cfa
@
09ee131
Last change on this file since 09ee131 was 766ec62, checked in by , 5 years ago | |
---|---|
|
|
File size: 1.6 KB |
Rev | Line | |
---|---|---|
[bd34fc87] | 1 | // |
[00b7cd3] | 2 | // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo |
3 | // | |
4 | // The contents of this file are covered under the licence agreement in the | |
5 | // file "LICENCE" distributed with Cforall. | |
[bd34fc87] | 6 | // |
[dc8511c] | 7 | // vector.cfa -- |
[bd34fc87] | 8 | // |
[00b7cd3] | 9 | // Author : Thierry Delisle |
10 | // Created On : Mon Jul 4 23:36:19 2016 | |
11 | // Last Modified By : Peter A. Buhr | |
[200fcb3] | 12 | // Last Modified On : Tue Dec 4 22:02:39 2018 |
13 | // Update Count : 29 | |
[bd34fc87] | 14 | // |
[ea29e73] | 15 | |
[73abe95] | 16 | #include <vector.hfa> |
[766ec62] | 17 | #include <fstream.hfa> |
[00b7cd3] | 18 | |
19 | #undef assert | |
20 | #define assert(x) \ | |
21 | do { \ | |
22 | if ( !(x) ) { \ | |
[200fcb3] | 23 | sout | "CHECK failed :" | #x | "at" | __FILE__ | " :" | __LINE__; \ |
[00b7cd3] | 24 | abort(); \ |
25 | } \ | |
26 | } while( 0 == 1 ) | |
27 | ||
28 | int main() { | |
[67cf18c] | 29 | vector( int ) iv; |
[00b7cd3] | 30 | |
[766ec62] | 31 | assert( ((uintptr_t)&iv.storage.storage ) == (((uintptr_t)&iv)) ); |
32 | assert( ((uintptr_t)&iv.storage.capacity) == (((uintptr_t)&iv) + sizeof(void *)) ); | |
33 | assert( ((uintptr_t)&iv.size ) == (((uintptr_t)&iv) + sizeof(void *) + sizeof(size_t)) ); | |
34 | ||
[00b7cd3] | 35 | assert( empty( &iv ) ); |
36 | assert( size( &iv ) == 0 ); | |
[200fcb3] | 37 | sout | size( &iv ); |
[00b7cd3] | 38 | |
39 | push_back( &iv, 1 ); | |
40 | assert( size( &iv ) == 1 ); | |
[200fcb3] | 41 | sout | size( &iv ); |
[ed3f3bf4] | 42 | |
[00b7cd3] | 43 | push_back( &iv, 2 ); |
44 | assert( size( &iv ) == 2 ); | |
[200fcb3] | 45 | sout | size( &iv ); |
[00b7cd3] | 46 | |
47 | push_back( &iv, 3 ); | |
48 | assert( size( &iv ) == 3 ); | |
[200fcb3] | 49 | sout | size( &iv ); |
[00b7cd3] | 50 | |
51 | assert( !empty( &iv ) ); | |
52 | assert( size( &iv ) == 3 ); | |
53 | assert( at( &iv, 0 ) == 1 ); | |
54 | assert( (&iv)[0] == 1 ); | |
55 | assert( at( &iv, 1 ) == 2 ); | |
56 | assert( (&iv)[1] == 2 ); | |
57 | assert( at( &iv, 2 ) == 3 ); | |
58 | assert( (&iv)[2] == 3 ); | |
59 | ||
60 | clear( &iv ); | |
61 | ||
62 | assert( empty( &iv ) ); | |
63 | assert( size( &iv ) == 0 ); | |
[200fcb3] | 64 | sout | size( &iv ); |
[ea29e73] | 65 | } |
[00b7cd3] | 66 | |
67 | // Local Variables: // | |
68 | // tab-width: 4 // | |
[dc8511c] | 69 | // compile-command: "cfa vector.cfa" // |
[00b7cd3] | 70 | // End: // |
Note: See TracBrowser
for help on using the repository browser.