public void TestCasting()
        {
            Int32[] Versions = UUIDFactory.GetAvailableVersion();
            Int32   CurVersion;
            Int32   CurVariant;

            for (Int32 VersionIndex = 0; VersionIndex < Versions.Length; VersionIndex++)
            {
                CurVersion = Versions[VersionIndex];
                Int32[] Variants = UUIDFactory.GetAvailableVariants(Versions[VersionIndex]);

                for (Int32 VariantIndex = 0; VariantIndex < Variants.Length; VariantIndex++)
                {
                    CurVariant = Variants[VariantIndex];

                    UUID ID = UUIDFactory.CreateUUID(CurVersion, CurVariant);
                    UUIDTests.ValidateUUID(ID);
                    String Temp = ID;
                    UUID   New  = Temp;

                    Assert.IsTrue(ID == New, "UUID casting to string failed");
                    Assert.IsTrue(New.GetVersion() == CurVersion, $"Tried to generate {CurVersion} but got {ID.GetVersion()}");
                    Assert.IsTrue(New.GetVariant() == CurVariant, $"Tried to generate {CurVariant} but got {ID.GetVariant()}");

                    Char[] Test = ID;
                    New = Test;

                    Assert.IsTrue(ID == New, "UUID casting to char array failed");
                    Assert.IsTrue(New.GetVersion() == CurVersion, $"Tried to generate {CurVersion} but got {ID.GetVersion()}");
                    Assert.IsTrue(New.GetVariant() == CurVariant, $"Tried to generate {CurVariant} but got {ID.GetVariant()}");
                }
            }
        }
        public void TestAllArray()
        {
            Int32[] Versions = UUIDFactory.GetAvailableVersion();
            Int32   CurVersion;
            Int32   CurVariant;
            Int32   Amount = 100;

            for (Int32 VersionIndex = 0; VersionIndex < Versions.Length; VersionIndex++)
            {
                CurVersion = Versions[VersionIndex];
                Int32[] Variants = UUIDFactory.GetAvailableVariants(Versions[VersionIndex]);

                for (Int32 VariantIndex = 0; VariantIndex < Variants.Length; VariantIndex++)
                {
                    CurVariant = Variants[VariantIndex];

                    UUID[] IDs = UUIDFactory.CreateUUIDs(Amount, CurVersion, CurVariant);
                    UUIDTests.ValidateUUID(IDs);

                    Assert.IsTrue(IDs.Length == Amount, $"{CurVersion}:{CurVariant} didn't generate {Amount} UUIDs");

                    foreach (UUID ID in IDs)
                    {
                        if (ID == (Object)null)
                        {
                            Assert.Fail($"Generated null {CurVersion}:{CurVariant}");
                        }

                        Assert.IsTrue(ID.GetVersion() == CurVersion, $"Tried to generate {CurVersion} but got {ID.GetVersion()}");
                        Assert.IsTrue(ID.GetVariant() == CurVariant, $"Tried to generate {CurVariant} but got {ID.GetVariant()}");
                    }
                }
            }
        }
        public void TestAll()
        {
            Int32[] Versions = UUIDFactory.GetAvailableVersion();
            Int32   CurVersion;
            Int32   CurVariant;

            for (Int32 VersionIndex = 0; VersionIndex < Versions.Length; VersionIndex++)
            {
                CurVersion = Versions[VersionIndex];
                Int32[] Variants = UUIDFactory.GetAvailableVariants(Versions[VersionIndex]);

                for (Int32 VariantIndex = 0; VariantIndex < Variants.Length; VariantIndex++)
                {
                    CurVariant = Variants[VariantIndex];

                    UUID ID = UUIDFactory.CreateUUID(CurVersion, CurVariant);
                    UUIDTests.ValidateUUID(ID);

                    Assert.IsTrue(ID.GetVersion() == CurVersion, $"Tried to generate {CurVersion}:{CurVariant} but got version {ID.GetVersion()}");
                    Assert.IsTrue(ID.GetVariant() == CurVariant, $"Tried to generate {CurVersion}:{CurVariant} but got variant {ID.GetVariant()}");
                }
            }
        }