mirror of
https://github.com/Z3Prover/z3
synced 2025-06-21 13:23:39 +00:00
checkpoint
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
142bf71b35
commit
9359ab7ce5
124 changed files with 2 additions and 0 deletions
74
src/test/optional.cpp
Normal file
74
src/test/optional.cpp
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
tst_optional.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
Test optional module
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2006-09-29.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#include"trace.h"
|
||||
#include"debug.h"
|
||||
#include"optional.h"
|
||||
|
||||
static void tst1() {
|
||||
optional<int> v;
|
||||
SASSERT(!v);
|
||||
SASSERT(v == false);
|
||||
v = 10;
|
||||
SASSERT(v);
|
||||
SASSERT(*v == 10);
|
||||
TRACE("optional", tout << sizeof(v) << "\n";);
|
||||
}
|
||||
|
||||
struct OptFoo {
|
||||
int m_x;
|
||||
int m_y;
|
||||
|
||||
OptFoo(int x, int y):m_x(x), m_y(y) {
|
||||
TRACE("optional", tout << "OptFoo created: " << m_x << " : " << m_y << "\n";);
|
||||
}
|
||||
|
||||
~OptFoo() {
|
||||
TRACE("optional", tout << "OptFoo deleted: " << m_x << " : " << m_y << "\n";);
|
||||
}
|
||||
};
|
||||
|
||||
static void tst2() {
|
||||
optional<OptFoo> v;
|
||||
SASSERT(!v);
|
||||
v = OptFoo(10, 20);
|
||||
SASSERT(v->m_x == 10);
|
||||
SASSERT(v->m_y == 20);
|
||||
v = OptFoo(200, 300);
|
||||
SASSERT(v->m_x == 200);
|
||||
SASSERT(v->m_y == 300);
|
||||
TRACE("optional", tout << sizeof(v) << "\n";);
|
||||
}
|
||||
|
||||
static void tst3() {
|
||||
optional<int *> v;
|
||||
SASSERT(!v);
|
||||
int x = 10;
|
||||
v = &x;
|
||||
SASSERT(v);
|
||||
SASSERT(*v == &x);
|
||||
TRACE("optional", tout << sizeof(v) << "\n";);
|
||||
SASSERT(*(*v) == 10);
|
||||
}
|
||||
|
||||
void tst_optional() {
|
||||
tst1();
|
||||
tst2();
|
||||
tst3();
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue