Mercurial > projects > dynamin
annotate 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 |
rev | line source |
---|---|
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
1 |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
2 /* |
103
73060bc3f004
Change license to Boost 1.0 and MPL 2.0.
Jordan Miner <jminer7@gmail.com>
parents:
102
diff
changeset
|
3 * Copyright Jordan Miner |
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
4 * |
103
73060bc3f004
Change license to Boost 1.0 and MPL 2.0.
Jordan Miner <jminer7@gmail.com>
parents:
102
diff
changeset
|
5 * Distributed under the Boost Software License, Version 1.0. |
73060bc3f004
Change license to Boost 1.0 and MPL 2.0.
Jordan Miner <jminer7@gmail.com>
parents:
102
diff
changeset
|
6 * (See accompanying file BOOST_LICENSE.txt or copy at |
73060bc3f004
Change license to Boost 1.0 and MPL 2.0.
Jordan Miner <jminer7@gmail.com>
parents:
102
diff
changeset
|
7 * http://www.boost.org/LICENSE_1_0.txt) |
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
8 * |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
9 */ |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
10 |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
11 module dynamin.core.array; |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
12 |
113 | 13 import dynamin.core.test; |
14 import dynamin.core.string; | |
15 | |
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
16 /** |
113 | 17 * Returns true if the specified item is in the specified array and false otherwise. |
18 * | |
19 * ## Examples | |
20 * | |
21 * assert("Hello".contains('e')); | |
22 * assert(!"Hello".contains('a')); | |
23 * assert(!"".contains('e')); | |
24 * assert([2, 3, 7].contains(3)); | |
25 * assert(![2, 3, 7].contains(0)); | |
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
26 */ |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
27 bool contains(T, U)(T[] arr, U item) { |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
28 foreach(U item2; arr) { |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
29 if(item == item2) |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
30 return true; |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
31 } |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
32 return false; |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
33 } |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
34 |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
35 unittest { |
113 | 36 assert("Hello".contains('e')); |
37 assert(!"Hello".contains('a')); | |
38 assert(!"".contains('e')); | |
39 assert([2, 3, 7].contains(3)); | |
40 assert(![2, 3, 7].contains(0)); | |
102
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
41 } |
604d20cac836
Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff
changeset
|
42 |
113 | 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 |