public void CorrectSize_Double()
        {
            for (var i = 100000 - 1; i >= 0; i--)
            {
                var result   = UnsafeHelpers.GetRandomObjectOfType(typeof(double));
                var expected = sizeof(double);
                var actual   = Marshal.SizeOf(result);

                Assert.That(actual, Is.EqualTo(expected));
            }
        }
        public void ValueIsUsableAcrossAppDomains()
        {
            AppDomain domain = null;

            try
            {
                domain = AppDomain.CreateDomain("TestCase Domain");
                domain.Load(Assembly.GetExecutingAssembly().GetName());

                var testClass = domain.CreateInstanceFromDeclaringAssemblyOfTypeAndUnwrap <UnsafeHelperTests>();
                var number    = UnsafeHelpers.GetRandomObjectOfType(typeof(double));

                testClass.AssertNoThrow_SetDataViaReflection(number);
            }
            finally
            {
                if (domain != null)
                {
                    AppDomain.Unload(domain);
                }
            }
        }
        public void ValueIsUsableViaReflection()
        {
            var number = UnsafeHelpers.GetRandomObjectOfType(typeof(double));

            AssertNoThrow_SetDataViaReflection(number);
        }
        private void AssertTypeIs(Type type)
        {
            var result = UnsafeHelpers.GetRandomObjectOfType(type);

            Assert.That(result, Is.TypeOf(type));
        }