comparison dynamin/core/array.d @ 113:4636a64afabc default tip

Add reverse() function.
author Jordan Miner <jminer7@gmail.com>
date Sat, 19 Jan 2013 21:08:52 -0600
parents 73060bc3f004
children
comparison
equal deleted inserted replaced
112:e1eb6df1cfbd 113:4636a64afabc
8 * 8 *
9 */ 9 */
10 10
11 module dynamin.core.array; 11 module dynamin.core.array;
12 12
13 import dynamin.core.test;
14 import dynamin.core.string;
15
13 /** 16 /**
14 * Tests whether or not the specified item is in the specified array. 17 * Returns true if the specified item is in the specified array and false otherwise.
15 * Returns: true if the specified item is in the array and false otherwise 18 *
16 * Examples: 19 * ## Examples
17 * ----- 20 *
18 * "Hello".contains('e') == true 21 * assert("Hello".contains('e'));
19 * "Hello".contains('a') == false 22 * assert(!"Hello".contains('a'));
20 * "".contains('e') == false 23 * assert(!"".contains('e'));
21 * assert([2, 3, 7].contains(3) == true); 24 * assert([2, 3, 7].contains(3));
22 * assert([2, 3, 7].contains(0) == false); 25 * assert(![2, 3, 7].contains(0));
23 * -----
24 */ 26 */
25 bool contains(T, U)(T[] arr, U item) { 27 bool contains(T, U)(T[] arr, U item) {
26 foreach(U item2; arr) { 28 foreach(U item2; arr) {
27 if(item == item2) 29 if(item == item2)
28 return true; 30 return true;
29 } 31 }
30 return false; 32 return false;
31 } 33 }
32 34
33 unittest { 35 unittest {
34 assert("Hello".contains('e') == true); 36 assert("Hello".contains('e'));
35 assert("Hello".contains('a') == false); 37 assert(!"Hello".contains('a'));
36 assert("".contains('e') == false); 38 assert(!"".contains('e'));
37 assert([2, 3, 7].contains(3) == true); 39 assert([2, 3, 7].contains(3));
38 assert([2, 3, 7].contains(0) == false); 40 assert(![2, 3, 7].contains(0));
39 } 41 }
40 42
43 /**
44 * Reverses the items in place in the specified array.
45 *
46 * ## Examples
47 *
48 * mstring str = "ABCD".dup;
49 * str.reverse();
50 * assertEqual(str, "DCBA");
51 *
52 */
53 void reverse(T)(T[] arr) {
54 for(int i = 0; i < arr.length / 2; ++i) {
55 arr[i] = arr[$ - i];
56 }
57 }
58
59 unittest {
60 mstring str;
61 str = "ABCD".dup;
62 str.reverse();
63 assertEqual(str, "DCBA");
64 str = "ABCDE".dup;
65 str.reverse();
66 assertEqual(str, "EDCBA");
67 str = "".dup;
68 str.reverse();
69 assertEqual(str, "");
70 }
71