예제 #1
0
        public void ShouldDeriveUnknownArray()
        {
            var actual   = ArrayTypeName.From(new TypeName(), 1);
            var expected = new ArrayTypeName("?[]");

            Assert.AreEqual(expected, actual);
        }
예제 #2
0
        public void ShouldDerivePredefinedFromPredefined()
        {
            var actual   = ArrayTypeName.From(new PredefinedTypeName("p:int"), 1);
            var expected = new PredefinedTypeName("p:int[]");

            Assert.AreEqual(expected, actual);
        }
예제 #3
0
        public void ShouldDeriveTypeParameterFromTypeParameter()
        {
            var actual   = ArrayTypeName.From(new TypeParameterName("T"), 1);
            var expected = new TypeParameterName("T[]");

            Assert.AreEqual(expected, actual);
        }
예제 #4
0
        public void ShouldDerive1To2DArray(string baseTypeId, string expected1DId, string expected2DId)
        {
            var expected1D  = TypeUtils.CreateTypeName(expected1DId);
            var expected2D  = TypeUtils.CreateTypeName(expected2DId);
            var actual1To2D = ArrayTypeName.From(expected1D, 1);

            Assert.AreEqual(expected2D, actual1To2D);
        }
예제 #5
0
        public static IEnumerable <string> TypesSource()
        {
            ISet <string> typeIds = new HashSet <string>();

            foreach (var baseTypeId in NonArrayTypeSource())
            {
                var baseType = TypeUtils.CreateTypeName(baseTypeId);
                Asserts.Not(baseType.IsArray);

                typeIds.Add(baseTypeId);
                typeIds.Add(ArrayTypeName.From(baseType, 1).Identifier);
                typeIds.Add(ArrayTypeName.From(baseType, 2).Identifier);
            }
            return(typeIds);
        }
예제 #6
0
        private void GenerateDeriveArrayTest(int counter, string baseTypeId)
        {
            Asserts.Not(ArrayTypeName.IsArrayTypeNameIdentifier(baseTypeId));
            var type = TypeUtils.CreateTypeName(baseTypeId);
            var arr1 = ArrayTypeName.From(type, 1);
            var arr2 = ArrayTypeName.From(type, 2);

            _sb.OpenTest("DeriveArrayTest_{0}".FormatEx(counter));

            _sb.AppendLine("String baseId = \"{0}\";".FormatEx(baseTypeId));
            _sb.AppendLine("String arr1Id = \"{0}\";".FormatEx(arr1.Identifier));
            _sb.AppendLine("String arr2Id = \"{0}\";".FormatEx(arr2.Identifier));
            _sb.AppendLine("ITypeName base = TypeUtils.createTypeName(baseId);");
            _sb.AppendLine("ITypeName arr1 = ArrayTypeName.from(base, 1);");
            _sb.AppendLine("assertTrue(arr1 instanceof {0});".FormatEx(arr1.GetType().Name));
            _sb.AppendLine("assertEquals(arr1Id, arr1.getIdentifier());");
            _sb.AppendLine("ITypeName arr2 = ArrayTypeName.from(base, 2);");
            _sb.AppendLine("assertTrue(arr2 instanceof {0});".FormatEx(arr2.GetType().Name));
            _sb.AppendLine("assertEquals(arr2Id, arr2.getIdentifier());");
            _sb.CloseTest();
        }
예제 #7
0
 public static IArrayTypeName ArrayType(int rank, ITypeName baseType)
 {
     return(ArrayTypeName.From(baseType, rank));
 }