Exemplo n.º 1
0
        public static IMultiMap <TKey, TVal> CompositeCtor <TKey, TVal>(
            MultiMapData <TKey, TVal> d)
        {
            var m = new CompositeMultiMap <TKey, TVal>(d.ComparerKey, d.ComparerValue);

            for (int i = 0; i < d.KeysInitial.Length; i++)
            {
                m.Add(d.KeysInitial[i], d.ValuesInitial[i]);
            }

            return(m);
        }
Exemplo n.º 2
0
 GetFixtureParams <TK, TV, TVCol, TCollection>(
     MultiMapData <TK, TV> data,
     string fixtureName)
     where TVCol : IEnumerable <TV>
 {
     return(MultiMapFixtureParamConstructor <TK, TV, TVCol, TCollection>
            .Construct(
                (d) => (TCollection)CompositeCtor(d),
                CtorVCol <TV, TVCol>,
                ComparerCol <TK, TV, TVCol>,
                data,
                Name,
                fixtureName));
 }
Exemplo n.º 3
0
 ComparerCol <TK, TV, TVCol>(MultiMapData <TK, TV> d)
     where TVCol : IEnumerable <TV>
 => new CollectionEqualityComparer <TV, TVCol>(d.ComparerValue);
        private static string Validate <TKey, TVal>(
            MultiMapData <TKey, TVal> d,
            string name)
        {
            string source = nameof(MultiMapDataSource) + "." + name;
            var    sb     = new StringBuilder();

            NullGuard(sb, d.TestDataName, nameof(MapData <TKey, TVal> .TestDataName), source);
            NullGuard(sb, d.KeysInitial, nameof(MapData <TKey, TVal> .KeysInitial), source);
            NullGuard(sb, d.KeysToAdd, nameof(MapData <TKey, TVal> .KeysToAdd), source);
            NullGuard(sb, d.KeysExcluded, nameof(MapData <TKey, TVal> .KeysExcluded), source);
            NullGuard(sb, d.ValuesInitial, nameof(MapData <TKey, TVal> .ValuesInitial), source);
            NullGuard(sb, d.ValuesToAdd, nameof(MapData <TKey, TVal> .ValuesToAdd), source);
            NullGuard(sb, d.ValuesExcluded, nameof(MapData <TKey, TVal> .ValuesExcluded), source);

            HasDuplicatesThrow(
                sb,
                d.KeysInitial,
                nameof(MultiMapData <TKey, TVal> .KeysInitial),
                d.ComparerKey,
                source);

            HasDuplicatesThrow(
                sb,
                d.KeysToAdd,
                nameof(MultiMapData <TKey, TVal> .KeysToAdd),
                d.ComparerKey,
                source);

            HasDuplicatesThrow(
                sb,
                d.KeysExcluded,
                nameof(MultiMapData <TKey, TVal> .KeysExcluded),
                d.ComparerKey,
                source);

            LengthDiffersThrow(
                sb,
                d.KeysInitial,
                d.ValuesInitial,
                nameof(MultiMapData <TKey, TVal> .KeysInitial),
                nameof(MultiMapData <TKey, TVal> .ValuesInitial),
                source);

            LengthDiffersThrow(
                sb,
                d.KeysToAdd,
                d.ValuesToAdd,
                nameof(MultiMapData <TKey, TVal> .KeysToAdd),
                nameof(MultiMapData <TKey, TVal> .ValuesToAdd),
                source);

            LengthDiffersThrow(
                sb,
                d.KeysExcluded,
                d.ValuesExcluded,
                nameof(MultiMapData <TKey, TVal> .KeysExcluded),
                nameof(MultiMapData <TKey, TVal> .ValuesExcluded),
                source);

            HasOverlapThrow(
                sb,
                d.KeysInitial,
                d.KeysToAdd,
                nameof(MultiMapData <TKey, TVal> .KeysInitial),
                nameof(MultiMapData <TKey, TVal> .KeysToAdd),
                d.ComparerKey,
                source);

            HasOverlapThrow(
                sb,
                d.KeysInitial,
                d.KeysExcluded,
                nameof(MultiMapData <TKey, TVal> .KeysInitial),
                nameof(MultiMapData <TKey, TVal> .KeysExcluded),
                d.ComparerKey,
                source);

            HasValueCollectionOverlapThrow(
                sb,
                d.ValuesInitial,
                d.ValuesExcluded,
                nameof(MultiMapData <TKey, TVal> .ValuesInitial),
                nameof(MultiMapData <TKey, TVal> .ValuesExcluded),
                d.ComparerValue,
                source);

            BothHaveEmptyCollectionThrow(
                sb,
                d.ValuesInitial,
                d.ValuesExcluded,
                nameof(MultiMapData <TKey, TVal> .ValuesInitial),
                nameof(MultiMapData <TKey, TVal> .ValuesExcluded),
                source);

            return(sb.ToString());
        }