use quote::quote;
use self_rust_tokenize::SelfRustTokenize;
#[test]
fn number() {
let thirty_four: i32 = 34;
let tokens = SelfRustTokenize::to_tokens(&thirty_four);
assert_eq!(tokens.to_string(), quote!(34i32).to_string());
}
#[test]
fn strings() {
let str1 = "hi";
let tokens = SelfRustTokenize::to_tokens(&str1);
assert_eq!(tokens.to_string(), quote!("hi").to_string());
let string1 = String::from("Hello");
let tokens = SelfRustTokenize::to_tokens(&string1);
assert_eq!(
tokens.to_string(),
quote!(::std::string::String::from("Hello")).to_string()
);
}
#[test]
fn vec() {
let vec1 = vec!["hello", "test"];
let tokens = SelfRustTokenize::to_tokens(&vec1);
assert_eq!(
tokens.to_string(),
quote!(::std::vec!["hello", "test"]).to_string()
);
}
#[test]
fn arrays() {
let array1 = ["hello", "test"];
let tokens = SelfRustTokenize::to_tokens(&array1);
assert_eq!(tokens.to_string(), quote!(["hello", "test"]).to_string());
}
#[test]
fn tuples() {
assert_eq!(
SelfRustTokenize::to_tokens(&()).to_string(),
quote!(()).to_string()
);
let tup1 = ("hello", Box::new(2));
let tokens = SelfRustTokenize::to_tokens(&tup1);
assert_eq!(
tokens.to_string(),
quote!(("hello", ::std::boxed::Box::new(2i32),)).to_string()
);
}
#[cfg(feature = "references")]
mod references {
use super::SelfRustTokenize;
use quote::quote;
#[test]
fn references() {
let tokens = SelfRustTokenize::to_tokens(&(&12i32));
assert_eq!(tokens.to_string(), quote!(&12i32).to_string());
let tokens = SelfRustTokenize::to_tokens(&(&mut 5i32));
assert_eq!(tokens.to_string(), quote!(&mut 5i32).to_string());
}
#[test]
fn slices() {
let mut array = ["hello", "test", "x"];
let slice1: &[&str] = &array[..2];
let tokens = SelfRustTokenize::to_tokens(&slice1);
assert_eq!(tokens.to_string(), quote!(&["hello", "test"]).to_string());
let slice2: &mut [&str] = &mut array[1..];
let tokens = SelfRustTokenize::to_tokens(&slice2);
assert_eq!(tokens.to_string(), quote!(&mut ["test", "x"]).to_string());
}
}
#[cfg(feature = "smallvec")]
#[test]
fn smallvec() {
use smallvec::{smallvec, SmallVec};
let v: SmallVec<[_; 128]> = smallvec![1, 2, 3];
let tokens = SelfRustTokenize::to_tokens(&v);
assert_eq!(
tokens.to_string(),
quote!(::smallvec::smallvec![1i32, 2i32, 3i32]).to_string()
);
}