]>
git.proxmox.com Git - rustc.git/blob - vendor/js-sys/tests/wasm/TypedArray.rs
2 use wasm_bindgen
::prelude
::*;
3 use wasm_bindgen
::JsCast
;
4 use wasm_bindgen_test
::*;
9 $m
!(Uint8ClampedArray
);
20 macro_rules
! test_inheritence
{
22 let arr
= $arr
::new(&JsValue
::undefined());
23 assert
!(arr
.is_instance_of
::<$arr
>());
24 let _
: &Object
= arr
.as_ref();
25 assert
!(arr
.is_instance_of
::<Object
>());
30 each
!(test_inheritence
);
33 macro_rules
! test_undefined
{
35 let arr
= $arr
::new(&JsValue
::undefined());
36 assert_eq
!(arr
.length(), 0);
37 assert_eq
!(arr
.byte_length(), 0);
38 assert_eq
!(arr
.byte_offset(), 0);
39 assert
!(JsValue
::from(arr
.buffer()).is_object());
44 each
!(test_undefined
);
47 macro_rules
! test_length
{
49 let arr
= $arr
::new(&4.into
());
50 assert_eq
!(arr
.length(), 4);
51 assert
!(arr
.byte_length() != 0);
52 assert_eq
!(arr
.byte_offset(), 0);
53 assert
!(JsValue
::from(arr
.buffer()).is_object());
61 macro_rules
! test_subarray
{
63 assert_eq
!($arr
::new(&4.into
()).subarray(0, 1).length(), 1);
71 macro_rules
! test_fill
{
73 let arr
= $arr
::new(&4.into
());
74 arr
.for_each(&mut |x
, _
, _
| {
75 assert_eq
!(x
as f64, 0.0);
77 arr
.fill(2 as _
, 0, 2);
78 arr
.for_each(&mut |x
, i
, _
| {
80 assert_eq
!(x
as f64, 2.0);
82 assert_eq
!(x
as f64, 0.0);
92 macro_rules
! test_at
{
94 let arr
= $arr
::new(&2.into
());
95 arr
.set_index(1, 1 as _
);
96 assert_eq
!(arr
.at(-1).unwrap() as f64, 1 as f64);
104 macro_rules
! test_get_set
{
106 let arr
= $arr
::new(&1.into
());
107 assert_eq
!(arr
.get_index(0) as f64, 0 as f64);
108 arr
.set_index(0, 1 as _
);
109 assert_eq
!(arr
.get_index(0) as f64, 1 as f64);
117 macro_rules
! test_slice
{
119 let arr
= $arr
::new(&4.into
());
120 assert_eq
!(arr
.length(), 4);
121 assert_eq
!(arr
.slice(1, 2).length(), 1);
132 let array
= unsafe { Int32Array::view(&x) }
;
133 assert_eq
!(array
.length(), 3);
134 array
.for_each(&mut |x
, i
, _
| {
135 assert_eq
!(x
, (i
+ 1) as i32);
141 let x
: Vec
<i32> = vec
![1, 2, 3];
142 let array
= Int32Array
::from(x
.as_slice());
143 assert_eq
!(array
.length(), 3);
144 array
.for_each(&mut |x
, i
, _
| {
145 assert_eq
!(x
, (i
+ 1) as i32);
152 let array
= Int32Array
::new(&10.into
());
153 array
.fill(5, 0, 10);
154 array
.copy_to(&mut x
);
163 let array
= Int32Array
::new(&3.into
());
165 array
.for_each(&mut |x
, i
, _
| {
166 assert_eq
!(x
, (i
+ 1) as i32);
172 let array
= Int32Array
::new(&10.into
());
173 array
.fill(5, 0, 10);
174 assert_eq
!(array
.to_vec(), vec
![5, 5, 5, 5, 5, 5, 5, 5, 5, 5]);