Ejemplo n.º 1
0
        public void CreateMap_PersonToPersonSwedish()
        {
            SafeMap.CreateMap <Person, PersonSwedish>(
                cfg =>
            {
                cfg.Map(x => x.Id, x => x.PersonId);
                cfg.Map(x => x.Name, x => x.Namn);
                cfg.Map(x => x.Age, x => x.Ålder);
                cfg.Map(x => x.Length, x => x.Längd);
                cfg.Map(x => x.BirthDate, x => x.Födelsedag);
            });

            var person = new Person
            {
                Id        = Guid.NewGuid(),
                Name      = "Magnus Unger",
                Age       = 38,
                Length    = 1.85m,
                BirthDate = new DateTime(1977, 03, 04),
            };
            var result = SafeMap.Convert <Person, PersonSwedish>(person);

            Assert.AreEqual(person.Id, result.PersonId);
            Assert.AreEqual(person.Name, result.Namn);
            Assert.AreEqual(person.Age, result.Ålder);
            Assert.AreEqual(person.Length, result.Längd);
            Assert.AreEqual(person.BirthDate, result.Födelsedag);
        }
Ejemplo n.º 2
0
        public void GetConverter_GenericWithFormat_StringToInt()
        {
            var converter = SafeMap.GetConverter <string, int>(CultureInfo.CurrentCulture);
            var result    = converter("10");

            Assert.AreEqual(10, result);
        }
Ejemplo n.º 3
0
        public override void Execute()
        {
            var rand     = new Random();
            var fromType = typeof(List <int>);
            var toType   = typeof(decimal[]);

            var intList = new List <int>(50);

            for (int i = 0; i < 50; i++)
            {
                intList.Add(rand.Next());
            }

            var toElementType = typeof(decimal);

            var fastConverter = SafeMap.GetConverter <List <int>, decimal[]>();
            var emitMapper    = ObjectMapperManager.DefaultInstance.GetMapper <List <int>, decimal[]>();

            this.WriteHeader();


            this.AddResult("Array.ConvertAll todecimal", i => Array.ConvertAll(intList.ToArray(), Convert.ToDecimal));
            this.AddResult("Array.ConvertAll changetype", i => Array.ConvertAll(intList.ToArray(), v => (decimal)Convert.ChangeType(v, toElementType)));
            this.AddResult("EmitMapper", i => emitMapper.Map(intList));
            this.AddResult("SafeMapper", i => fastConverter(intList));
            this.AddResult("FastMapper", i => TypeAdapter.Adapt(intList, fromType, toType));
            this.AddResult("AutoMapper", i => Mapper.Map(intList, fromType, toType));
        }
Ejemplo n.º 4
0
        private IEnumerable <T> InnerMatches(string input)
        {
            foreach (Match match in _regex.Matches(input))
            {
                var valuesDictionary = new Dictionary <string, string[]>();
                foreach (var groupName in _groupNames)
                {
                    var matchGroup = match.Groups[groupName];

                    if (!matchGroup.Success)
                    {
                        valuesDictionary[groupName] = null;
                    }
                    else if (matchGroup.Captures.Count > 1)
                    {
                        valuesDictionary[groupName] = Enumerate(matchGroup.Captures).ToArray();
                    }
                    else
                    {
                        valuesDictionary[groupName] = new [] { matchGroup.Value };
                    }
                }
                yield return(SafeMap.Convert <Dictionary <string, string[]>, T>(valuesDictionary, _formatProvider));
            }
        }
Ejemplo n.º 5
0
        private SafeMap <VocabModel> ProcessVocabBanks(List <FileInfo> fileInfoes)
        {
            var serialzer = new JsonSerializer();
            var map       = new SafeMap <VocabModel>();

            foreach (var fileInfo in fileInfoes)
            {
                using (var fs = fileInfo.OpenRead())
                    using (var sr = new StreamReader(fs))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            var raw = serialzer.Deserialize <VocabModelRaw>(jtr);
                            foreach (var l in raw)
                            {
                                var tags      = (string)l[2];
                                var tags2     = (string)l[3];
                                var tagModels = TagHelper.SplitTags(tags, tags2).Select(x =>
                                {
                                    if (Tags.TryGetValue(x, out var tagModel))
                                    {
                                        return(tagModel);
                                    }
                                    return(null);
                                }).Where(x => x != null).ToList();

                                var meanings = ((JArray)l[5]).ToObject <List <string> >();

                                var kanji = (string)l[0];
                                var kana  = (string)l[1];

                                if (kanji == "〃")
                                {
                                    kanji = kana;
                                }
                                if (kana == "")
                                {
                                    kana = kanji;
                                }

                                var vocabModel = map[kanji];
                                if (vocabModel == null)
                                {
                                    vocabModel = map[kanji] = new VocabModel
                                    {
                                        Kanji = kanji,
                                    };
                                }

                                vocabModel.Meanings.Add(new VocabContextualMeaningModel
                                {
                                    Kana     = kana,
                                    Tags     = tagModels,
                                    Meanings = meanings,
                                });
                            }
                        }
            }

            return(map);
        }
Ejemplo n.º 6
0
        public override void Execute()
        {
            var rand     = new Random();
            var fromType = typeof(int[]);
            var toType   = typeof(List <decimal>);

            var intArray = new int[50];

            for (int i = 0; i < 50; i++)
            {
                intArray[i] = rand.Next();
            }

            var toElementType = typeof(decimal);

            var fastConverter = SafeMap.GetConverter <int[], List <decimal> >();
            var emitMapper    = ObjectMapperManager.DefaultInstance.GetMapper <int[], List <decimal> >();

            this.WriteHeader();


            this.AddResult("Array.ConvertAll todecimal", i => new List <decimal>(Array.ConvertAll(intArray, Convert.ToDecimal)));
            this.AddResult("Array.ConvertAll changetype", i => new List <decimal>(Array.ConvertAll(intArray, v => (decimal)Convert.ChangeType(v, toElementType))));
            this.AddResult("EmitMapper", i => emitMapper.Map(intArray));
            this.AddResult("SafeMapper", i => fastConverter(intArray));
            this.AddResult("FastMapper", i => TypeAdapter.Adapt(intArray, fromType, toType));
            this.AddResult("AutoMapper", i => Mapper.Map(intArray, fromType, toType));
        }
Ejemplo n.º 7
0
        private SafeMap <FrequencyModel> Process(List <FileInfo> fileInfoes, bool skipSingleFrequency)
        {
            var serialzer = new JsonSerializer();
            var map       = new SafeMap <FrequencyModel>();

            foreach (var fileInfo in fileInfoes)
            {
                using (var fs = fileInfo.OpenRead())
                    using (var sr = new StreamReader(fs))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            var raw    = serialzer.Deserialize <FrequencyModelRaw>(jtr);
                            var models = raw.Select(l =>
                            {
                                return(new FrequencyModel
                                {
                                    Term = (string)l[0],
                                    Frequency = Convert.ToInt32(l[2]),
                                });
                            });

                            foreach (var model in models.Where(x => !skipSingleFrequency || x.Frequency > 1))
                            {
                                map[model.Term] = model;
                            }
                        }
            }

            return(map);
        }
Ejemplo n.º 8
0
        public void GetConverter_Generic_StringToInt()
        {
            var converter = SafeMap.GetConverter <string, int>();
            var result    = converter("10");

            Assert.AreEqual(10, result);
        }
Ejemplo n.º 9
0
        public void GetConverter_NonGenericWithFormat_StringToInt()
        {
            var converter = SafeMap.GetConverter(typeof(string), typeof(int), CultureInfo.CurrentCulture);
            var result    = converter("10");

            Assert.AreEqual(10, result);
        }
Ejemplo n.º 10
0
        public void GetConverter_NonGeneric_StringToInt()
        {
            var converter = SafeMap.GetConverter(typeof(string), typeof(int));
            var result    = converter("10");

            Assert.AreEqual(10, result);
        }
Ejemplo n.º 11
0
        protected void ProcessTagBanks(List <FileInfo> fileInfoes)
        {
            var serialzer = new JsonSerializer();
            var map       = new SafeMap <TagModel>();

            foreach (var fileInfo in fileInfoes)
            {
                using (var fs = fileInfo.OpenRead())
                    using (var sr = new StreamReader(fs))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            var raw    = serialzer.Deserialize <TagModelRaw>(jtr);
                            var models = raw.Select(l =>
                            {
                                var key   = (string)l[0];
                                var order = Convert.ToInt32(l[2]);
                                var value = (string)l[3];

                                return(new TagModel {
                                    Key = key, Value = value, Order = order
                                });
                            });

                            foreach (var model in models)
                            {
                                map[model.Key] = model;
                            }
                        }
            }

            Tags = map;
        }
Ejemplo n.º 12
0
        private double ComparePerformance <TFrom, TTo>(Action compareAction, TFrom input, int iterations = 100000)
        {
            var safeMapConverter = SafeMap.GetConverter <TFrom, TTo>();

            var compareTime    = Profiler.Profile(compareAction, iterations, 100);
            var safeMapperTime = Profiler.Profile(() => safeMapConverter(input), iterations, 100);

            return((safeMapperTime - compareTime) / compareTime);
        }
Ejemplo n.º 13
0
        public async Task SetupAsync()
        {
            var kanjiFiles = await _dictionaryProvider.CollectKanjiFrequencyFilesAsync();

            var vocabFiles = await _dictionaryProvider.CollectVocabFrequencyFilesAsync();

            Kanjis = Process(kanjiFiles, false);
            Vocabs = Process(vocabFiles, true);
        }
Ejemplo n.º 14
0
        public async Task SetupAsync()
        {
            var tagFiles = await _dictionaryProvider.CollectKanjiTagFilesAsync();

            ProcessTagBanks(tagFiles);

            var kanjiFiles = await _dictionaryProvider.CollectKanjiFilesAsync();

            Kanjis = ProcessKanjiBanks(kanjiFiles);
        }
Ejemplo n.º 15
0
        public async Task SetupAsync()
        {
            var tagFiles = await _dictionaryProvider.CollectVocabTagFilesAsync();

            ProcessTagBanks(tagFiles);

            AddExtraTags();

            var vocabFiles = await _dictionaryProvider.CollectVocabFilesAsync();

            Vocabs = ProcessVocabBanks(vocabFiles);
        }
Ejemplo n.º 16
0
        public FileSettings Get(string fileName)
        {
            lock (threadLock)
            {
                if (!SafeMap.ContainsKey(fileName))
                {
                    SafeMap.Add(fileName, FileSettings.Default);
                }

                return(SafeMap[fileName]);
            }
        }
Ejemplo n.º 17
0
        public void SetConfiguration_ShouldResetPreviousConfiguredConverters()
        {
            SafeMap.Configuration.SetConvertMethod <int, string>(i => i.ToString(CultureInfo.InvariantCulture) + " pcs");

            var result1 = SafeMap.Convert <int, string>(10);

            SafeMap.Configuration = new MapConfiguration();
            var result2 = SafeMap.Convert <int, string>(10);

            Assert.AreEqual("10 pcs", result1);
            Assert.AreEqual("10", result2);
        }
Ejemplo n.º 18
0
        private SafeMap <KanjiModel> ProcessKanjiBanks(List <FileInfo> fileInfoes)
        {
            var serialzer = new JsonSerializer();
            var map       = new SafeMap <KanjiModel>();

            foreach (var fileInfo in fileInfoes)
            {
                using (var fs = fileInfo.OpenRead())
                    using (var sr = new StreamReader(fs))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            var raw    = serialzer.Deserialize <KanjiModelRaw>(jtr);
                            var models = raw.Select(l =>
                            {
                                var tags      = (string)l[3];
                                var tagModels = TagHelper.SplitTags(tags).Select(x =>
                                {
                                    if (Tags.TryGetValue(x, out var tagModel))
                                    {
                                        return(tagModel);
                                    }
                                    return(null);
                                }).Where(x => x != null).ToList();

                                var meanings = ((JArray)l[4]).ToObject <List <string> >();

                                var extras = ((JObject)l[5]).ToObject <Dictionary <string, string> >();

                                return(new KanjiModel
                                {
                                    Kanji = (string)l[0],
                                    Onyomi = (string)l[1],
                                    Kunyomi = (string)l[2],
                                    Tags = tagModels,
                                    Meanings = meanings,
                                    Grade = extras.ContainsKey("grade") ? int.Parse(extras["grade"]) : (int?)null,
                                    Jlpt = extras.ContainsKey("jlpt") ? int.Parse(extras["jlpt"]) : (int?)null,
                                    Strokes = int.Parse(extras["strokes"]),
                                });
                            });

                            foreach (var model in models)
                            {
                                map[model.Kanji] = model;
                            }
                        }
            }

            return(map);
        }
        public async Task SetupAsync()
        {
            var fileInfo = await _dictionaryProvider.GetSimilarKeiseiFileAsync();

            var serialzer = new JsonSerializer();

            using (var fs = fileInfo.OpenRead())
                using (var sr = new StreamReader(fs))
                    using (var jtr = new JsonTextReader(sr))
                    {
                        var raw = serialzer.Deserialize <SimilarModelRaw>(jtr);
                        Model = raw.ToSafeMap();
                    }
        }
Ejemplo n.º 20
0
        public async Task SetupAsync()
        {
            SimilarRadicals = new SafeMap <NiaiSimilarRadicalsEntry>();

            var fileInfo = await _dictionaryProvider.GetNiaiSimilarRadicalsAsync();

            using var fs = fileInfo.OpenRead();
            using var sr = new StreamReader(fs, Encoding.UTF8);

            NiaiSimilarRadicalsEntry GetEntry(string radical)
            {
                if (!SimilarRadicals.TryGetValue(radical, out var entry1))
                {
                    entry1 = SimilarRadicals[radical] = new NiaiSimilarRadicalsEntry
                    {
                        Radical = radical,
                        Similar = new System.Collections.Generic.List <(string Radical, double Score)>(),
                    };
                }
                return(entry1);
            }

            while (!sr.EndOfStream)
            {
                var line = await sr.ReadLineAsync();

                if (string.IsNullOrWhiteSpace(line) || line.StartsWith("#"))
                {
                    continue;
                }

                // Format is: R1 R2 Score
                var r1    = line[0].ToString();
                var r2    = line[2].ToString();
                var score = double.Parse(line[4..]);

                var e1 = GetEntry(r1);
                var e2 = GetEntry(r2);

                if (e1.Similar.Any(x => x.Radical == r2))
                {
                    Console.WriteLine($"Found duplicates in niai/similar-radicals.txt: {r1} {r2}");
                    continue;
                }

                e1.Similar.Add((r2, score));
                e2.Similar.Add((r1, score));
            }
Ejemplo n.º 21
0
        public void CreateMap_NameValueCollectionToClassPropertyInt_StringIndexer()
        {
            SafeMap.CreateMap <NameValueCollection, ClassProperty <int> >(
                cfg =>
            {
                cfg.MapGetIndexer((x, key) => x[key]);
                cfg.Map <string, int>("Value2", x => x.Value);
            });

            var input = new NameValueCollection {
                { "Value2", "1337" }
            };
            var result = SafeMap.Convert <NameValueCollection, ClassProperty <int> >(input);

            Assert.AreEqual(1337, result.Value);
        }
Ejemplo n.º 22
0
        public void CreateMap_ClassPropertyIntToNameValueCollection_Add()
        {
            SafeMap.Configuration.SetConvertMethod <int, string>(i => i.ToString(CultureInfo.InvariantCulture));
            SafeMap.CreateMap <ClassProperty <int>, NameValueCollection>(
                cfg =>
            {
                cfg.MapSetIndexer <string>((x, key, val) => x.Add(key, val));
                cfg.Map <int, string>(x => x.Value, "Value2");
            });

            var input = new ClassProperty <int> {
                Value = 1337
            };
            var result = SafeMap.Convert <ClassProperty <int>, NameValueCollection>(input);

            Assert.AreEqual("1337", result["Value2"]);
        }
Ejemplo n.º 23
0
        private SafeMap <VocabModel> ProcessVocabBanks(List <FileInfo> fileInfoes)
        {
            var serialzer = new JsonSerializer();
            var map       = new SafeMap <VocabModel>();

            foreach (var fileInfo in fileInfoes)
            {
                using (var fs = fileInfo.OpenRead())
                    using (var sr = new StreamReader(fs))
                        using (var jtr = new JsonTextReader(sr))
                        {
                            var raw    = serialzer.Deserialize <VocabModelRaw>(jtr);
                            var models = raw.Select(l =>
                            {
                                var tags      = (string)l[2];
                                var tags2     = (string)l[3];
                                var tagModels = TagHelper.SplitTags(tags, tags2).Select(x =>
                                {
                                    if (Tags.TryGetValue(x, out var tagModel))
                                    {
                                        return(tagModel);
                                    }
                                    return(null);
                                }).Where(x => x != null).ToList();

                                var meanings = ((JArray)l[5]).ToObject <List <string> >();

                                return(new VocabModel
                                {
                                    Vocab = (string)l[0],
                                    Kana = (string)l[1],
                                    Tags = tagModels,
                                    Meanings = meanings,
                                });
                            });

                            foreach (var model in models)
                            {
                                map[model.Vocab] = model;
                            }
                        }
            }

            return(map);
        }
Ejemplo n.º 24
0
        public async Task SetupAsync()
        {
            var fileInfo = await _dictionaryProvider.GetSimilarNotoFileAsync();

            var serialzer = new JsonSerializer();

            using (var fs = fileInfo.OpenRead())
                using (var sr = new StreamReader(fs))
                    using (var jtr = new JsonTextReader(sr))
                    {
                        var raw = serialzer.Deserialize <SimilarModelWithScoreRaw>(jtr);

                        Model = SafeMap <List <SimilarKanji> > .Create(raw, list => list.Select(x => new SimilarKanji
                        {
                            Value = x.Kan,
                            Score = x.Score + 0.1,             // Add base score.
                        }).ToList());
                    }
        }
        public async Task SetupAsync()
        {
            var fileInfo = await _dictionaryProvider.GetSimilarKeiseiFileAsync();

            var serialzer = new JsonSerializer();

            using (var fs = fileInfo.OpenRead())
                using (var sr = new StreamReader(fs))
                    using (var jtr = new JsonTextReader(sr))
                    {
                        var raw = serialzer.Deserialize <SimilarModelRaw>(jtr);

                        Model = SafeMap <List <SimilarKanji> > .Create(raw, list => list.Select(x => new SimilarKanji
                        {
                            Value = x,
                            Score = 0.65,             // Default score for Keisei dictionary.
                        }).ToList());
                    }
        }
Ejemplo n.º 26
0
 public void InitByAssembly(Assembly _assembly)
 {
     if (_assembly == null)
     {
         return;
     }
     mAssembly = _assembly;
     if (mAssembType == null)
     {
         mAssembType = new SafeMap <string, Type>();
     }
     Type[] ttypes = mAssembly.GetTypes();
     foreach (Type ttype in ttypes)
     {
         if (mAssembType.ContainsKey(ttype.FullName))
         {
             continue;
         }
         mAssembType.Add(ttype.FullName, ttype);
     }
 }
Ejemplo n.º 27
0
        public async Task SetupAsync()
        {
            var file1 = await _dictionaryProvider.GetKradFileAsync();

            // Currently not working correctly with the encoding.
            //var file2 = await _dictionaryProvider.GetKradFile2Async();

            var encoding = CodePagesEncodingProvider.Instance.GetEncoding(20932 /* EUC-JP */);

            Model = new SafeMap <KradFileEntry>();

            async Task ProcessFileAsync(FileInfo fileInfo)
            {
                using var fs = fileInfo.OpenRead();
                using var sr = new StreamReader(fs, encoding);

                while (!sr.EndOfStream)
                {
                    var line = await sr.ReadLineAsync();

                    if (string.IsNullOrWhiteSpace(line) || line.StartsWith("#"))
                    {
                        continue;
                    }

                    //            0    4
                    // Format is: 亜 : | 一 口
                    var kanji          = line[0].ToString();
                    var radicalsString = line[4..];
                    var radicals       = radicalsString.Split(' ')
                                         .Select(x => x.Trim())
                                         .Where(x => !string.IsNullOrEmpty(x) && !RadicalsToSkip.Contains(x))
                                         .ToList();

                    Model[kanji] = new KradFileEntry
                    {
                        Kanji    = kanji,
                        Radicals = radicals,
                    };
                }
Ejemplo n.º 28
0
        public override void Execute()
        {
            var rand     = new Random();
            var fromType = typeof(int[]);
            var toType   = typeof(decimal[]);

            var intArray = new int[50];

            for (int i = 0; i < 50; i++)
            {
                intArray[i] = rand.Next();
            }

            var toElementType = typeof(decimal);

            this.WriteHeader();

            var genericConvertType    = typeof(Converter <,>).MakeGenericType(typeof(int), typeof(decimal));
            var fasterflectConvertAll = typeof(Array).DelegateForCallMethod(
                new Type[] { typeof(int), typeof(decimal) },
                "ConvertAll",
                new Type[] { fromType, genericConvertType });


            var fastConverter = SafeMap.GetConverter <int[], decimal[]>();
            var emitMapper    = ObjectMapperManager.DefaultInstance.GetMapper <int[], decimal[]>();



            this.AddResult("Array.ConvertAll todecimal", i => Array.ConvertAll(intArray, Convert.ToDecimal));
            this.AddResult("Array.ConvertAll changetype", i => Array.ConvertAll(intArray, v => Convert.ChangeType(v, toElementType)));
            this.AddResult("EmitMapper", i => emitMapper.Map(intArray));
            this.AddResult("SafeMapper", i => fastConverter(intArray));
            this.AddResult("FastMapper", i => TypeAdapter.Adapt(intArray, fromType, toType));
            //this.AddResult("AutoMapper", i => Mapper.Map(intArray, fromType, toType));
            this.AddResult("Manual forloop", i => this.ConvertArrayManual(intArray, toElementType, v => Convert.ToDecimal(v)));
            this.AddResult("Manual forloop rev", i => this.ConvertArrayManualReverse(intArray, toElementType, v => Convert.ToDecimal(v)));
            this.AddResult("Manual foreachloop", i => this.ConvertArrayManualForEach(intArray, toElementType, v => Convert.ToDecimal(v)));
        }
Ejemplo n.º 29
0
        private void ProfileConvert <TSource, TDestination>(TSource[] input, CultureInfo formatProvider, Action <int> compareFunc)
        {
            var safeMapper      = SafeMap.GetConverter <TSource, TDestination>();
            var sourceType      = typeof(TSource);
            var destinationType = typeof(TDestination);

            var emitMapper = ObjectMapperManager.DefaultInstance.GetMapper <TSource, TDestination>();

            //var fFastMapper = fFastMap.MapperFor<TSource, TDestination>();

            if (typeof(TDestination) != typeof(string))
            {
                if (typeof(TDestination) == typeof(DateTime) && typeof(TSource) == typeof(string))
                {
                    AutoMapper.Mapper.CreateMap(typeof(TSource), typeof(TDestination)).ConvertUsing(typeof(AutoMapperDateTimeTypeConverter));
                }
                else
                {
                    AutoMapper.Mapper.CreateMap <TSource, TDestination>();
                }
            }

            AutoMapper.Mapper.CreateMap <Address, AddressDto>();
            AutoMapper.Mapper.CreateMap <AddressDto, Address>();
            AutoMapper.Mapper.CreateMap <BenchSource.Int1, BenchDestination.Int1>();
            AutoMapper.Mapper.CreateMap <BenchSource.Int2, BenchDestination.Int2>();

            this.WriteHeader(string.Format("Profiling convert from {0} to {1}, {2} iterations", typeof(TSource).Name, typeof(TDestination).Name, input.Length));

            if (compareFunc != null)
            {
                this.AddResult("Native", compareFunc);
            }

            this.AddResult("SafeMapper", i => safeMapper(input[i]));

            this.AddResult("EmitMapper", i => emitMapper.Map(input[i]));

            this.AddResult("FastMapper", i => TypeAdapter.Adapt(input[i], sourceType, destinationType));

            //this.AddResult("fFastMapper", i => fFastMapper.Map(input[i]));

            /*
             * this.AddResult("ValueInjecter",
             *  i =>
             *      {
             *          var result = new TDestination();
             *          result.InjectFrom(input[i]);
             *      });*/

            /*
             * this.AddResult(
             *      "ServiceStack",
             *      i => AutoMappingUtils.ConvertTo<TDestination>(input[i]));
             *
             * this.AddResult(
             *      "SimpleTypeConverter",
             *      i => SimpleTypeConverter.ConvertTo(input[i], typeof(TDestination), formatProvider));
             *
             *
             * this.AddResult(
             *      "UniversalTypeConverter",
             *      i => UniversalTypeConverter.Convert(input[i], typeof(TDestination), formatProvider));*/


            this.AddResult("AutoMapper", i => AutoMapper.Mapper.Map <TSource, TDestination>(input[i]));
        }
 public SafeMapperBenchmark()
 {
     _simpleConverter = SafeMap.GetConverter <SimplePoco, SimplePocoDTO>();
     _nestedConverter = SafeMap.GetConverter <NestedPoco, NestedPocoDTO>();
 }