<commit_before><commit_msg>Variant: dummy IConvertible implementation to test its API<commit_after>﻿using System;

namespace Spreads.DataTypes
{
    public unsafe partial struct Variant : IConvertible
    {
        /// <inheritdoc/>
        public TypeCode GetTypeCode()
        {
            return Type.GetTypeCode(VariantHelper.GetType(this.TypeEnum));
        }

        /// <inheritdoc/>
        public bool ToBoolean(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToBoolean(obj);
        }

        /// <inheritdoc/>
        public byte ToByte(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToByte(obj);
        }

        /// <inheritdoc/>
        public char ToChar(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToChar(obj);
        }

        /// <inheritdoc/>
        public DateTime ToDateTime(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToDateTime(obj);
        }

        /// <inheritdoc/>
        public decimal ToDecimal(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToDecimal(obj);
        }

        /// <inheritdoc/>
        public double ToDouble(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToDouble(obj);
        }

        /// <inheritdoc/>
        public short ToInt16(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToInt16(obj);
        }

        /// <inheritdoc/>
        public int ToInt32(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToInt32(obj);
        }

        /// <inheritdoc/>
        public long ToInt64(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToInt64(obj);
        }

        /// <inheritdoc/>
        public sbyte ToSByte(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToSByte(obj);
        }

        /// <inheritdoc/>
        public float ToSingle(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToSingle(obj);
        }

        /// <inheritdoc/>
        public string ToString(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToString(obj);
        }

        /// <inheritdoc/>
        public object ToType(Type conversionType, IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ChangeType(obj, conversionType, provider);
        }

        /// <inheritdoc/>
        public ushort ToUInt16(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToUInt16(obj);
        }

        /// <inheritdoc/>
        public uint ToUInt32(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToUInt32(obj);
        }

        /// <inheritdoc/>
        public ulong ToUInt64(IFormatProvider provider)
        {
            var obj = ToObject();
            return Convert.ToUInt64(obj);
        }
    }
}
{'fraction_non_alphanumeric': 0.09884075655887736, 'fraction_numerical': 0.007321537522879805, 'mean_word_length': 1.4916413373860182, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7019', 'n_tokens_mistral': 845, 'n_tokens_neox': 830, 'n_words': 187}