Replaced Array::new with [ ]
[kakapo:kakapo.git] / t / Pmc / ResizableStringArray.nqp
1 # Copyright (C) 2009, Austin Hastings. See accompanying LICENSE file, or 
2 # http://www.opensource.org/licenses/artistic-license-2.0.php for license.
3
4 sub main() {
5         Kakapo::Test::ResizableStringArray.run_tests();
6         Program::exit(0);
7 }
8
9 module Kakapo;
10
11 sub library_name()              { 'kakapo_test.pbc' }
12
13 module Kakapo::Test::ResizableStringArray;
14 =module
15 Test cases for Kakapo's Undef add-in methods.
16 =end
17
18 Class::SUBCLASS('Kakapo::Test::ResizableStringArray', 
19         'Testcase');
20
21 Global::use('Matcher::Factory');        # is(), not(), etc.
22
23 method test_rsa_append() {
24         
25         self.note("Testing RSA.append() method");
26         
27         my @strings := ResizableStringArray.new('a', 'b');
28         my @extras := ResizableStringArray.new('c', 'd', 'e');
29         
30         self.assert_that("The elements count", @strings.elems, is(2));
31         
32         @strings.append(@extras);
33         
34         self.assert_that("The elements count", @strings.elems, is(5));
35         self.assert_that("Element 0", @strings[0], is('a'));
36         self.assert_that("Element 1", @strings[1], is('b'));
37         self.assert_that("Element 2", @strings[2], is('c'));
38         self.assert_that("Element 3", @strings[3], is('d'));
39         self.assert_that("Element 4", @strings[4], is('e'));
40         
41         @strings := ResizableStringArray.new();
42         self.assert_that("The elements count", @strings.elems, is(0));
43         
44         my $ary := (0, 1, 2);
45         @strings.append( $ary );
46         self.assert_that("The elements count", @strings.elems, is(3));
47         
48         @strings.append( Array.new('dog', 'cow'));
49         self.assert_that("The elements count", @strings.elems, is(5));
50 }
51
52 method test_rsa_clone() {
53         
54         self.note("Testing RSA.clone() method");
55         
56         my @strings := ResizableStringArray.new('a', 'z');
57         my @str2        := @strings.clone;
58         
59         self.assert_that("The elements count", @str2.elems, is(@strings.elems));
60         self.assert_that("Element 0", @str2[0], is('a'));
61         self.assert_that("Element 1", @str2[1], is('z'));
62         
63         @strings[0] := 'x';
64         self.assert_that("The element 0", @str2[0], is('a'));
65         
66         @strings.shift;
67         self.assert_that("The elements count", @str2.elems, is(2));
68 }
69
70 method test_rsa_contains() {
71         
72         self.note("Testing RSA.contains() method");
73         
74         my @strings := ResizableStringArray.new('a', 'b', 'c');
75         self.assert_that("The array contains 'a'", @strings.contains('a'), is(true()));
76         self.assert_that("The array contains 'c'", @strings.contains('c'), is(true()));
77         self.assert_that("The array contains 'b'", @strings.contains('b'), is(true()));
78         self.assert_that("The array contains 'A'", @strings.contains('A'), is(false()));
79         self.assert_that("The array contains 'aa'", @strings.contains('aa'), is(false()));
80         self.assert_that("The array contains 'd'", @strings.contains('aa'), is(false()));
81         self.assert_that("The array contains ''", @strings.contains(''), is(false()));
82 }
83
84 method test_rsa_elements() {
85
86         self.note("Testing RSA.elems() method");
87         
88         my @strings := ResizableStringArray.new();
89         self.assert_that("The elements count", @strings.elems, is(0));
90
91         my $count := 0;
92         for "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16".split(' ') {
93                 @strings.push($_);
94                 self.assert_that("The elements count", @strings.elems, is(+$_));
95         }
96         
97 }
98
99 method test_rsa_join() {
100         
101         self.note("Testing RSA.join() method");
102         
103         my @strings := ResizableStringArray.new('foo', 1, 'cow');
104         self.assert_that('The default join', @strings.join, is('foo1cow'));
105         self.assert_that('Joining with spaces', @strings.join(' '), is('foo 1 cow'));
106 }
107
108 method test_rsa_new() {
109         
110         self.note("Testing RSA.new() class method");
111         
112         my @strings := ResizableStringArray.new();
113         self.assert_that("A new RSA", @strings, is(instance_of('ResizableStringArray')));
114         self.assert_that("A new RSA", @strings, is(empty()));
115
116         @strings := ResizableStringArray.new("foo");
117         self.assert_that("A new RSA", @strings, is(instance_of('ResizableStringArray')));
118         self.assert_that("The ResizableStringArray", @strings, is(not(empty())));
119         self.assert_that("The elements count", @strings.elems, is(1));  
120 }