source: tests/vector.cfa@ 21a700e

Last change on this file since 21a700e was 766ec62, checked in by Thierry Delisle <tdelisle@…>, 5 years ago

Really really stupid temporary fix for the build failure, will add ticket to track later

  • Property mode set to 100644
File size: 1.6 KB
RevLine 
[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
28int 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.