about summary refs log tree commit diff
path: root/src/libstd/bitv.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-17 19:05:07 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-17 19:48:58 -0800
commit6e27b27cf8a9ece270f2556c3362524854d06de4 (patch)
treee310348b211f329737cec9a1a30fbf641492ad46 /src/libstd/bitv.rs
parent17bf4b0e1be01bc7a54c389deb5896949736d7f2 (diff)
libstd: Move std tests into libstd
Diffstat (limited to 'src/libstd/bitv.rs')
-rw-r--r--src/libstd/bitv.rs285
1 files changed, 285 insertions, 0 deletions
diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs
index 6f68b666174..30af05a9c49 100644
--- a/src/libstd/bitv.rs
+++ b/src/libstd/bitv.rs
@@ -305,6 +305,291 @@ fn eq_vec(v0: t, v1: [uint]) -> bool {
     ret true;
 }
 
+#[cfg(test)]
+mod tests {
+    #[test]
+    fn test_0_elements() {
+        let act;
+        let exp;
+        act = create(0u, false);
+        exp = vec::init_elt::<uint>(0u, 0u);
+        assert (eq_vec(act, exp));
+    }
+
+    #[test]
+    fn test_1_element() {
+        let act;
+        act = create(1u, false);
+        assert (eq_vec(act, [0u]));
+        act = create(1u, true);
+        assert (eq_vec(act, [1u]));
+    }
+
+    #[test]
+    fn test_10_elements() {
+        let act;
+        // all 0
+
+        act = create(10u, false);
+        assert (eq_vec(act, [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u]));
+        // all 1
+
+        act = create(10u, true);
+        assert (eq_vec(act, [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(10u, false);
+        set(act, 0u, true);
+        set(act, 1u, true);
+        set(act, 2u, true);
+        set(act, 3u, true);
+        set(act, 4u, true);
+        assert (eq_vec(act, [1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(10u, false);
+        set(act, 5u, true);
+        set(act, 6u, true);
+        set(act, 7u, true);
+        set(act, 8u, true);
+        set(act, 9u, true);
+        assert (eq_vec(act, [0u, 0u, 0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(10u, false);
+        set(act, 0u, true);
+        set(act, 3u, true);
+        set(act, 6u, true);
+        set(act, 9u, true);
+        assert (eq_vec(act, [1u, 0u, 0u, 1u, 0u, 0u, 1u, 0u, 0u, 1u]));
+    }
+
+    #[test]
+    fn test_31_elements() {
+        let act;
+        // all 0
+
+        act = create(31u, false);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u]));
+        // all 1
+
+        act = create(31u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(31u, false);
+        set(act, 0u, true);
+        set(act, 1u, true);
+        set(act, 2u, true);
+        set(act, 3u, true);
+        set(act, 4u, true);
+        set(act, 5u, true);
+        set(act, 6u, true);
+        set(act, 7u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(31u, false);
+        set(act, 16u, true);
+        set(act, 17u, true);
+        set(act, 18u, true);
+        set(act, 19u, true);
+        set(act, 20u, true);
+        set(act, 21u, true);
+        set(act, 22u, true);
+        set(act, 23u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(31u, false);
+        set(act, 24u, true);
+        set(act, 25u, true);
+        set(act, 26u, true);
+        set(act, 27u, true);
+        set(act, 28u, true);
+        set(act, 29u, true);
+        set(act, 30u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(31u, false);
+        set(act, 3u, true);
+        set(act, 17u, true);
+        set(act, 30u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u]));
+    }
+
+    #[test]
+    fn test_32_elements() {
+        let act;
+        // all 0
+
+        act = create(32u, false);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u]));
+        // all 1
+
+        act = create(32u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(32u, false);
+        set(act, 0u, true);
+        set(act, 1u, true);
+        set(act, 2u, true);
+        set(act, 3u, true);
+        set(act, 4u, true);
+        set(act, 5u, true);
+        set(act, 6u, true);
+        set(act, 7u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(32u, false);
+        set(act, 16u, true);
+        set(act, 17u, true);
+        set(act, 18u, true);
+        set(act, 19u, true);
+        set(act, 20u, true);
+        set(act, 21u, true);
+        set(act, 22u, true);
+        set(act, 23u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(32u, false);
+        set(act, 24u, true);
+        set(act, 25u, true);
+        set(act, 26u, true);
+        set(act, 27u, true);
+        set(act, 28u, true);
+        set(act, 29u, true);
+        set(act, 30u, true);
+        set(act, 31u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(32u, false);
+        set(act, 3u, true);
+        set(act, 17u, true);
+        set(act, 30u, true);
+        set(act, 31u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u, 1u]));
+    }
+
+    #[test]
+    fn test_33_elements() {
+        let act;
+        // all 0
+
+        act = create(33u, false);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u]));
+        // all 1
+
+        act = create(33u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u, 1u]));
+        // mixed
+
+        act = create(33u, false);
+        set(act, 0u, true);
+        set(act, 1u, true);
+        set(act, 2u, true);
+        set(act, 3u, true);
+        set(act, 4u, true);
+        set(act, 5u, true);
+        set(act, 6u, true);
+        set(act, 7u, true);
+        assert (eq_vec(act,
+                       [1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(33u, false);
+        set(act, 16u, true);
+        set(act, 17u, true);
+        set(act, 18u, true);
+        set(act, 19u, true);
+        set(act, 20u, true);
+        set(act, 21u, true);
+        set(act, 22u, true);
+        set(act, 23u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 1u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u]));
+        // mixed
+
+        act = create(33u, false);
+        set(act, 24u, true);
+        set(act, 25u, true);
+        set(act, 26u, true);
+        set(act, 27u, true);
+        set(act, 28u, true);
+        set(act, 29u, true);
+        set(act, 30u, true);
+        set(act, 31u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 1u, 1u,
+                        1u, 1u, 1u, 1u, 1u, 1u, 0u]));
+        // mixed
+
+        act = create(33u, false);
+        set(act, 3u, true);
+        set(act, 17u, true);
+        set(act, 30u, true);
+        set(act, 31u, true);
+        set(act, 32u, true);
+        assert (eq_vec(act,
+                       [0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u,
+                        0u, 0u, 0u, 0u, 1u, 1u, 1u]));
+    }
+
+}
+
 //
 // Local Variables:
 // mode: rust