1
//////////////////////////////////////////////////////////////////////////
3
// pgScript - PostgreSQL Tools
4
// RCS-ID: $Id: pgsTestGeneratorString.cpp 7758 2009-03-26 20:49:59Z dpage $
5
// Copyright (C) 2002 - 2009, The pgAdmin Development Team
6
// This software is released under the BSD Licence
8
//////////////////////////////////////////////////////////////////////////
11
#include "pgsTestSuite.h"
13
#include "pgscript/generators/pgsStringGen.h"
15
void pgsTestSuite::test_generator_string(void)
17
const int nb_iterations = 100;
19
// Generate empty strings because of inconsistent arguments
21
pgsStringGen gen1(0, 0, 10);
22
pgsStringGen gen2(10, 20, 0);
23
// pgsStringGen gen3(-10, -20, 10);
24
// pgsStringGen gen4(10, 20, -10);
25
TS_ASSERT(gen1.random() == wxT(""));
26
TS_ASSERT(gen2.random() == wxT(""));
27
// TS_ASSERT(gen3.random() == wxT(""));
28
// TS_ASSERT(gen4.random() == wxT(""));
31
// Generate strings with 'a' only
36
pgsStringGen gen(2, 2, 3, wxDateTime::GetTimeNow(), chars);
37
for (int i = 0; i < nb_iterations; i++)
39
TS_ASSERT(gen.random() == wxT("aa aa aa"));
43
// Test strings that are in fact numbers
44
// Test the size of generated strings
51
pgsStringGen gen(5, 5, 1, wxDateTime::GetTimeNow(), chars);
53
for (int i = 0; i < nb_iterations; i++)
55
result = gen.random();
57
result.ToLong(&aux_res);
58
TS_ASSERT(MAPM(result.mb_str()) == aux_res && result.Length() == 5);
62
// Test the size of generated strings
64
pgsStringGen gen(10, 11, 3, 123);
65
pgsStringGen comparator(10, 11, 3, 123);
67
for (int i = 0; i < nb_iterations; i++)
69
result = gen.random();
70
TS_ASSERT(result == comparator.random());
71
TS_ASSERT(result.Length() >= 32 && result.Length() <= 35);
75
// Test copy constructor
77
// Create a generator and generate values
78
pgsStringGen gen(10, 11, 3, 123456789L);
79
wxString result, res_cmp;
80
for (int i = 0; i < nb_iterations / 2; i++)
82
result = gen.random();
85
// Copy this generator to a new one
86
// Both generators must generate the same values
87
pgsStringGen comparator(gen);
88
for (int i = nb_iterations / 2; i < nb_iterations; i++)
90
result = gen.random();
91
res_cmp = comparator.random();
92
TS_ASSERT(result == res_cmp);
96
// Test assignment operator
98
// Create two different generators and generate values
99
pgsStringGen gen(20, 30, 20);
100
pgsStringGen comparator(0, 0, 10);
101
wxString result, res_cmp;
102
for (int i = 0; i < nb_iterations / 2; i++)
104
result = gen.random();
105
res_cmp = comparator.random();
108
// Copy one of the generators to the other one
109
// Both generators must generate the same values
111
for (int i = nb_iterations / 2; i < nb_iterations; i++)
113
result = gen.random();
114
res_cmp = comparator.random();
115
TS_ASSERT(result == res_cmp);