2001-08-09 Dietmar Maurer <dietmar@ximian.com>
[mono.git] / mono / tests / array.cs
1 using System;
2 using System.Runtime.InteropServices;
3
4 public class Test {
5
6         [DllImport("cygwin1.dll", EntryPoint="puts", CharSet=CharSet.Ansi)]
7         public static extern int puts (string name);
8
9         public static int jagged () {
10                 int[][] j2 = new int [3][];
11
12                 // does not work 
13                 // j2 [0] = new int[] {1, 2, 3};
14                 // j2 [1] = new int[] {1, 2, 3, 4, 5, 6};
15                 // j2 [2] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
16
17                 j2 [0] = new int[3];
18                 j2 [1] = new int[6];
19                 j2 [2] = new int[9];
20
21                 for (int i = 0; i < j2.Length; i++)
22                         for (int j = 0; j < (i+1)*3; j++)
23                                 j2 [i][j] = j;
24
25                 for (int i = 0; i < j2.Length; i++)
26                         for (int j = 0; j < (i+1)*3; j++)
27                                 if (j2 [i][j] != j)
28                                         return 1;
29                 return 0;
30         }
31
32         public static int stest () {
33                 string[] sa = new string[32];
34
35                 sa [0] = "This";
36                 sa [2] = "is";
37                 sa [10] = "a";
38                 sa [20] = "stupid";
39                 sa [21] = "Test";
40
41                 for (int i = 0; i < sa.Length; i++)
42                         if (sa [i] != null)
43                                 puts (sa [i]);
44                 
45                 return 0;
46         }
47         
48         public static int atest2 () {
49                 int[,] ia = new int[32,32];
50
51                 for (int i = 0; i <ia.GetLength (0); i++)
52                         ia [i,i] = i*i;
53
54                 for (int i = 0; i <ia.GetLength (0); i++)
55                         if (ia [i,i] != i*i)
56                                 return 1;
57
58                 return 0;
59         }
60         
61         public static int Main () {
62                 int[] ia = new int[32];
63
64                 for (int i = 0; i <ia.Length; i++)
65                         ia [i] = i*i;
66
67                 for (int i = 0; i <ia.Length; i++)
68                         if (ia [i] != i*i)
69                                 return 1;
70                 
71                 if (ia.Rank != 1)
72                         return 1;
73                 
74                 if (atest2 () != 0)
75                         return 1;
76                 if (atest2 () != 0)
77                         return 1;
78                 
79                 if (stest () != 0)
80                         return 1;
81                 
82                 if (jagged () != 0)
83                         return 1;
84                 
85
86                 if (ia.GetValue (2) == null)
87                         return 1;
88                 
89                 return 0;
90         }
91 }
92
93