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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
13 import dynamin.core.test;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
14 import dynamin.core.string;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
15
102
604d20cac836 Add dynamin.core.array and put contains() there.
Jordan Miner <jminer7@gmail.com>
parents:
diff changeset
16 /**
113
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
17 * Returns true if the specified item is in the specified array and false otherwise.
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
18 *
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
19 * ## Examples
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
20 *
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
21 * assert("Hello".contains('e'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
22 * assert(!"Hello".contains('a'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
23 * assert(!"".contains('e'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
24 * assert([2, 3, 7].contains(3));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
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
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
36 assert("Hello".contains('e'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
37 assert(!"Hello".contains('a'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
38 assert(!"".contains('e'));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
39 assert([2, 3, 7].contains(3));
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
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
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
43 /**
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
44 * Reverses the items in place in the specified array.
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
45 *
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
46 * ## Examples
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
47 *
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
48 * mstring str = "ABCD".dup;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
49 * str.reverse();
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
50 * assertEqual(str, "DCBA");
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
51 *
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
52 */
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
53 void reverse(T)(T[] arr) {
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
54 for(int i = 0; i < arr.length / 2; ++i) {
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
55 arr[i] = arr[$ - i];
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
56 }
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
57 }
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
58
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
59 unittest {
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
60 mstring str;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
61 str = "ABCD".dup;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
62 str.reverse();
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
63 assertEqual(str, "DCBA");
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
64 str = "ABCDE".dup;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
65 str.reverse();
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
66 assertEqual(str, "EDCBA");
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
67 str = "".dup;
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
68 str.reverse();
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
69 assertEqual(str, "");
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
70 }
4636a64afabc Add reverse() function.
Jordan Miner <jminer7@gmail.com>
parents: 103
diff changeset
71