make r-a accept my tests
This commit is contained in:
parent
04d59b77d8
commit
41bb03966e
37
src/test.rs
37
src/test.rs
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
use rand::{thread_rng, Rng};
|
use rand::{thread_rng, Rng};
|
||||||
|
|
||||||
use super::prelude::{vec, *};
|
// `dvec` makes r-a happy, otherwise it thinks we are using the std `vec!` macro
|
||||||
|
use super::prelude::{vec as dvec, *};
|
||||||
use std::{
|
use std::{
|
||||||
any::Any,
|
any::Any,
|
||||||
fmt::Debug,
|
fmt::Debug,
|
||||||
|
@ -29,7 +30,7 @@ fn basic_push() {
|
||||||
#[test]
|
#[test]
|
||||||
fn box_push() {
|
fn box_push() {
|
||||||
let mut vec: Vec<dyn Debug> = Vec::new();
|
let mut vec: Vec<dyn Debug> = Vec::new();
|
||||||
vec.push_box(Box::new(1));
|
vec.push_box(Box::new(1) as _); // makes r-a happy, idk
|
||||||
vec.push_box(Box::new(String::from("foo")));
|
vec.push_box(Box::new(String::from("foo")));
|
||||||
vec.push_box(Box::new(true));
|
vec.push_box(Box::new(true));
|
||||||
assert_eq!(vec.debug(), "[1, \"foo\", true]");
|
assert_eq!(vec.debug(), "[1, \"foo\", true]");
|
||||||
|
@ -46,18 +47,18 @@ fn unsize_push() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn all_macro() {
|
fn all_macro() {
|
||||||
let vec: Vec<i32> = vec![3, 5, 7];
|
let vec: Vec<i32> = dvec![3, 5, 7];
|
||||||
assert_eq!(vec, [3, 5, 7]);
|
assert_eq!(vec, [3, 5, 7]);
|
||||||
|
|
||||||
let vec2: Vec<dyn Debug> = vec![box:
|
let vec2: Vec<dyn Debug> = dvec![box:
|
||||||
Box::new(1) as _,
|
Box::new(1) as _,
|
||||||
Box::new(String::from("foo")) as _,
|
Box::new(String::from("foo")) as _,
|
||||||
Box::new(true) as _,
|
Box::new(true) as _,
|
||||||
];
|
];
|
||||||
let vec3: Vec<dyn Debug> = vec![unsized: 1, String::from("foo"), true];
|
let vec3: Vec<dyn Debug> = dvec![unsized: 1, String::from("foo"), true];
|
||||||
assert_eq!(vec2.debug(), vec3.debug());
|
assert_eq!(vec2.debug(), vec3.debug());
|
||||||
|
|
||||||
let vec4: Vec<i32> = vec![3; 5];
|
let vec4: Vec<i32> = dvec![3; 5];
|
||||||
assert_eq!(vec4, [3; 5]);
|
assert_eq!(vec4, [3; 5]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +74,7 @@ fn dropped() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let vec: Vec<dyn Debug> = vec![unsized: 1, FunkyDrop, true];
|
let vec: Vec<dyn Debug> = dvec![unsized: 1, FunkyDrop, true];
|
||||||
|
|
||||||
assert!(!DROPPED.load(Ordering::SeqCst));
|
assert!(!DROPPED.load(Ordering::SeqCst));
|
||||||
|
|
||||||
|
@ -84,7 +85,7 @@ fn dropped() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn get() {
|
fn get() {
|
||||||
let vec: Vec<i32> = vec![3, 5, 7];
|
let vec: Vec<i32> = dvec![3, 5, 7];
|
||||||
assert_eq!(vec.get(0).copied(), Some(3));
|
assert_eq!(vec.get(0).copied(), Some(3));
|
||||||
assert_eq!(vec.get(1).copied(), Some(5));
|
assert_eq!(vec.get(1).copied(), Some(5));
|
||||||
assert_eq!(vec.get(2).copied(), Some(7));
|
assert_eq!(vec.get(2).copied(), Some(7));
|
||||||
|
@ -94,7 +95,7 @@ fn get() {
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "index out of bounds: the len is 3 but the index is 3"]
|
#[should_panic = "index out of bounds: the len is 3 but the index is 3"]
|
||||||
fn index() {
|
fn index() {
|
||||||
let vec: Vec<i32> = vec![3, 5, 7];
|
let vec: Vec<i32> = dvec![3, 5, 7];
|
||||||
assert_eq!(vec[0], 3);
|
assert_eq!(vec[0], 3);
|
||||||
assert_eq!(vec[1], 5);
|
assert_eq!(vec[1], 5);
|
||||||
assert_eq!(vec[2], 7);
|
assert_eq!(vec[2], 7);
|
||||||
|
@ -103,7 +104,7 @@ fn index() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn slice_flatten() {
|
fn slice_flatten() {
|
||||||
let mut vec: Vec<[i32]> = vec![unsized: [1, 2, 3], [4, 5], [6, 7, 8, 9]];
|
let mut vec: Vec<[i32]> = dvec![unsized: [1, 2, 3], [4, 5], [6, 7, 8, 9]];
|
||||||
assert_eq!(vec.as_slice_flatten(), [1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
assert_eq!(vec.as_slice_flatten(), [1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
||||||
vec.as_mut_slice_flatten()[4] = 10;
|
vec.as_mut_slice_flatten()[4] = 10;
|
||||||
assert_eq!(vec[1], [4, 10]);
|
assert_eq!(vec[1], [4, 10]);
|
||||||
|
@ -111,7 +112,7 @@ fn slice_flatten() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn iteration() {
|
fn iteration() {
|
||||||
let mut vec: Vec<dyn Debug> = vec![unsized: 1, String::from("foo"), true];
|
let mut vec: Vec<dyn Debug> = dvec![unsized: 1, String::from("foo"), true];
|
||||||
|
|
||||||
let mut iter = vec.iter();
|
let mut iter = vec.iter();
|
||||||
assert_eq!(iter.next().unwrap().debug(), "1");
|
assert_eq!(iter.next().unwrap().debug(), "1");
|
||||||
|
@ -137,7 +138,7 @@ fn zst() {
|
||||||
#[derive(Debug, PartialEq, Eq)]
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
struct Zst;
|
struct Zst;
|
||||||
|
|
||||||
let vec: Vec<Zst> = vec![Zst, Zst, Zst];
|
let vec: Vec<Zst> = dvec![Zst, Zst, Zst];
|
||||||
|
|
||||||
assert_eq!(vec[1], Zst);
|
assert_eq!(vec[1], Zst);
|
||||||
for el in vec.iter() {
|
for el in vec.iter() {
|
||||||
|
@ -145,7 +146,7 @@ fn zst() {
|
||||||
}
|
}
|
||||||
assert_eq!(vec.debug(), "[Zst, Zst, Zst]");
|
assert_eq!(vec.debug(), "[Zst, Zst, Zst]");
|
||||||
|
|
||||||
let vec: Vec<dyn Debug> = vec![unsized: Zst, (), Zst];
|
let vec: Vec<dyn Debug> = dvec![unsized: Zst, (), Zst];
|
||||||
|
|
||||||
assert_eq!(vec[1].debug(), "()");
|
assert_eq!(vec[1].debug(), "()");
|
||||||
for el in vec.iter() {
|
for el in vec.iter() {
|
||||||
|
@ -156,7 +157,7 @@ fn zst() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn downcast() {
|
fn downcast() {
|
||||||
let mut vec: Vec<dyn Any> = vec![unsized: 1, String::from("foo"), true];
|
let mut vec: Vec<dyn Any> = dvec![unsized: 1, String::from("foo"), true];
|
||||||
|
|
||||||
assert_eq!(vec.downcast_get::<f32>(0), None);
|
assert_eq!(vec.downcast_get::<f32>(0), None);
|
||||||
assert_eq!(vec.downcast_get::<i32>(0), Some(&1));
|
assert_eq!(vec.downcast_get::<i32>(0), Some(&1));
|
||||||
|
@ -171,7 +172,7 @@ fn downcast() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn pop() {
|
fn pop() {
|
||||||
let mut vec: Vec<dyn Debug> = vec![unsized: 1, String::from("foo"), true];
|
let mut vec: Vec<dyn Debug> = dvec![unsized: 1, String::from("foo"), true];
|
||||||
|
|
||||||
assert_eq!(vec.pop().debug(), "Some(true)");
|
assert_eq!(vec.pop().debug(), "Some(true)");
|
||||||
assert_eq!(vec.pop().debug(), "Some(\"foo\")");
|
assert_eq!(vec.pop().debug(), "Some(\"foo\")");
|
||||||
|
@ -201,7 +202,7 @@ fn with_capacity() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn unsize() {
|
fn unsize() {
|
||||||
let vec = vec![1, 2, 3];
|
let vec = dvec![1, 2, 3];
|
||||||
let mut vec: Vec<dyn Debug> = vec.unsize_stable(|v| v as _);
|
let mut vec: Vec<dyn Debug> = vec.unsize_stable(|v| v as _);
|
||||||
vec.push_unsize_stable(String::from("foo"), |v| v as _);
|
vec.push_unsize_stable(String::from("foo"), |v| v as _);
|
||||||
assert_eq!(vec.debug(), "[1, 2, 3, \"foo\"]");
|
assert_eq!(vec.debug(), "[1, 2, 3, \"foo\"]");
|
||||||
|
@ -209,7 +210,7 @@ fn unsize() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn remove() {
|
fn remove() {
|
||||||
let mut vec: Vec<dyn Debug> = vec![unsized: 1, String::from("foo"), true];
|
let mut vec: Vec<dyn Debug> = dvec![unsized: 1, String::from("foo"), true];
|
||||||
assert_eq!(vec.remove(1).unwrap().debug(), "\"foo\"");
|
assert_eq!(vec.remove(1).unwrap().debug(), "\"foo\"");
|
||||||
assert_eq!(vec.debug(), "[1, true]");
|
assert_eq!(vec.debug(), "[1, true]");
|
||||||
}
|
}
|
||||||
|
@ -222,7 +223,7 @@ fn stress_test() {
|
||||||
|
|
||||||
let mut len = 0;
|
let mut len = 0;
|
||||||
|
|
||||||
let iterations = if cfg!(miri) { 100_000 } else { 1_000_000 };
|
let iterations = if cfg!(miri) { 1_000 } else { 1_000_000 };
|
||||||
|
|
||||||
for _ in 0..iterations {
|
for _ in 0..iterations {
|
||||||
if len == 0 || rng.gen_bool(0.7) {
|
if len == 0 || rng.gen_bool(0.7) {
|
||||||
|
|
Loading…
Reference in a new issue