changeset 113:4636a64afabc default tip

Add reverse() function.
author Jordan Miner <jminer7@gmail.com>
date Sat, 19 Jan 2013 21:08:52 -0600
parents e1eb6df1cfbd
children
files dynamin/core/array.d
diffstat 1 files changed, 46 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/dynamin/core/array.d	Sat Jan 19 20:57:58 2013 -0600
+++ b/dynamin/core/array.d	Sat Jan 19 21:08:52 2013 -0600
@@ -10,17 +10,19 @@
 
 module dynamin.core.array;
 
+import dynamin.core.test;
+import dynamin.core.string;
+
 /**
- * Tests whether or not the specified item is in the specified array.
- * Returns: true if the specified item is in the array and false otherwise
- * Examples:
- * -----
- * "Hello".contains('e') == true
- * "Hello".contains('a') == false
- * "".contains('e') == false
- * assert([2, 3, 7].contains(3) == true);
- * assert([2, 3, 7].contains(0) == false);
- * -----
+ * Returns true if the specified item is in the specified array and false otherwise.
+ *
+ * ## Examples
+ *
+ *     assert("Hello".contains('e'));
+ *     assert(!"Hello".contains('a'));
+ *     assert(!"".contains('e'));
+ *     assert([2, 3, 7].contains(3));
+ *     assert(![2, 3, 7].contains(0));
  */
 bool contains(T, U)(T[] arr, U item) {
 	foreach(U item2; arr) {
@@ -31,10 +33,39 @@
 }
 
 unittest {
-	assert("Hello".contains('e') == true);
-	assert("Hello".contains('a') == false);
-	assert("".contains('e') == false);
-	assert([2, 3, 7].contains(3) == true);
-	assert([2, 3, 7].contains(0) == false);
+	assert("Hello".contains('e'));
+	assert(!"Hello".contains('a'));
+	assert(!"".contains('e'));
+	assert([2, 3, 7].contains(3));
+	assert(![2, 3, 7].contains(0));
 }
 
+/**
+ * Reverses the items in place in the specified array.
+ *
+ * ## Examples
+ *
+ *     mstring str = "ABCD".dup;
+ *     str.reverse();
+ *     assertEqual(str, "DCBA");
+ *
+ */
+void reverse(T)(T[] arr) {
+	for(int i = 0; i < arr.length / 2; ++i) {
+		arr[i] = arr[$ - i];
+	}
+}
+
+unittest {
+	mstring str;
+	str = "ABCD".dup;
+	str.reverse();
+	assertEqual(str, "DCBA");
+	str = "ABCDE".dup;
+	str.reverse();
+	assertEqual(str, "EDCBA");
+	str = "".dup;
+	str.reverse();
+	assertEqual(str, "");
+}
+