1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using Xunit;
- namespace Jint.Tests.Runtime
- {
- public class TypedArrayInteropTests
- {
- [Fact]
- public void CanInteropWithInt8()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Int8Array.Construct(new sbyte[] { 42 }));
- ValidateCreatedTypeArray(engine, "Int8Array");
- }
- [Fact]
- public void CanInteropWithUint8()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Uint8Array.Construct(new byte[] { 42 }));
- ValidateCreatedTypeArray(engine, "Uint8Array");
- }
- [Fact]
- public void CanInteropWithUint8Clamped()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Uint8ClampedArray.Construct(new byte[] { 42 }));
- ValidateCreatedTypeArray(engine, "Uint8ClampedArray");
- }
- [Fact]
- public void CanInteropWithInt16()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Int16Array.Construct(new short[] { 42 }));
- ValidateCreatedTypeArray(engine, "Int16Array");
- }
- [Fact]
- public void CanInteropWithUint16()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Uint16Array.Construct(new ushort[] { 42 }));
- ValidateCreatedTypeArray(engine, "Uint16Array");
- }
- [Fact]
- public void CanInteropWithInt32()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Int32Array.Construct(new int[] { 42 }));
- ValidateCreatedTypeArray(engine, "Int32Array");
- }
- [Fact]
- public void CanInteropWithUint32()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.Uint32Array.Construct(new uint[] { 42 }));
- ValidateCreatedTypeArray(engine, "Uint32Array");
- }
- [Fact(Skip = "BigInt not implemented")]
- public void CanInteropWithBigInt64()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.BigInt64Array.Construct(new long[] { 42 }));
- ValidateCreatedTypeArray(engine, "BigInt64Array");
- }
- [Fact(Skip = "BigInt not implemented")]
- public void CanInteropWithBigUint64()
- {
- var engine = new Engine();
- engine.SetValue("testSubject", engine.Realm.Intrinsics.BigUint64Array.Construct(new ulong[] { 42 }));
- ValidateCreatedTypeArray(engine, "BigUint64Array");
- }
- private static void ValidateCreatedTypeArray(Engine engine, string arrayName)
- {
- Assert.Equal(arrayName, engine.Evaluate("testSubject.constructor.name").AsString());
- Assert.Equal(1, engine.Evaluate("testSubject.length").AsNumber());
- Assert.Equal(42, engine.Evaluate("testSubject[0]").AsNumber());
- }
- }
- }
|