From a9d62e5a90c4c29276ea3a3b7475712a63af8174 Mon Sep 17 00:00:00 2001 From: Michael Sullivan <sully@msully.net> Date: Wed, 15 Jun 2011 17:08:10 -0700 Subject: [PATCH] Write some tests for swap. --- src/test/compile-fail/swap-uninit.rs | 7 +++++++ src/test/run-pass/swap-1.rs | 7 +++++++ src/test/run-pass/swap-2.rs | 14 ++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 src/test/compile-fail/swap-uninit.rs create mode 100644 src/test/run-pass/swap-1.rs create mode 100644 src/test/run-pass/swap-2.rs diff --git a/src/test/compile-fail/swap-uninit.rs b/src/test/compile-fail/swap-uninit.rs new file mode 100644 index 00000000000..18ca56b5aea --- /dev/null +++ b/src/test/compile-fail/swap-uninit.rs @@ -0,0 +1,7 @@ +// error-pattern:Unsatisfied precondition + +fn main() { + auto x = 3; + auto y; + x <-> y; +} diff --git a/src/test/run-pass/swap-1.rs b/src/test/run-pass/swap-1.rs new file mode 100644 index 00000000000..a4ce5bf2d62 --- /dev/null +++ b/src/test/run-pass/swap-1.rs @@ -0,0 +1,7 @@ +fn main() { + auto x = 3; + auto y = 7; + x <-> y; + assert (x == 7); + assert (y == 3); +} diff --git a/src/test/run-pass/swap-2.rs b/src/test/run-pass/swap-2.rs new file mode 100644 index 00000000000..6c33030ba0a --- /dev/null +++ b/src/test/run-pass/swap-2.rs @@ -0,0 +1,14 @@ +fn swap[T](&vec[mutable T] v, int i, int j) { + v.(i) <-> v.(j); +} + +fn main() { + let vec[mutable int] a = [mutable 0,1,2,3,4,5,6]; + swap(a, 2, 4); + assert(a.(2) == 4); + assert(a.(4) == 2); + auto n = 42; + n <-> a.(0); + assert(a.(0) == 42); + assert(n == 0); +}