using System;
using Xunit;
using Raylib_cs;

namespace Raylib_cs.Tests
{
    public class RaylibTests
    {
        private unsafe void CheckType<T>() where T : unmanaged
        {
            Assert.True(BlittableHelper.IsBlittable<T>());
        }

        [Fact]
        public void CheckTypes()
        {
            CheckType<Color>();
            CheckType<Rectangle>();
            CheckType<Image>();
            CheckType<Texture2D>();
            CheckType<RenderTexture2D>();
            CheckType<NPatchInfo>();
            CheckType<GlyphInfo>();
            CheckType<Font>();
            CheckType<Camera2D>();
            CheckType<Camera3D>();
            CheckType<Mesh>();
            CheckType<Shader>();
            CheckType<MaterialMap>();
            CheckType<Material>();
            CheckType<Transform>();
            CheckType<BoneInfo>();
            CheckType<Model>();
            CheckType<ModelAnimation>();
            CheckType<Ray>();
            CheckType<RayCollision>();
            CheckType<BoundingBox>();
            CheckType<Wave>();
            CheckType<AudioStream>();
            CheckType<Sound>();
            CheckType<Music>();
            CheckType<VrDeviceInfo>();
            CheckType<VrStereoConfig>();
            CheckType<RenderBatch>();
        }
    }
}