changeset 4:1ed6616fe905

extended array tests
author thomask
date Sun, 26 Sep 2004 15:54:31 +0000
parents b374f71310ea
children e6777053bf1c
files compile/align_04.d compile/extern_01.d compile/extern_02.d nocompile/align_01.d nocompile/align_02.d nocompile/align_03.d nocompile/align_05.d nocompile/bounds_checking_01.d nocompile/length_03.d norun/slice_06.d norun/slice_08.d run/array_initialization_02.d run/dup_01.d run/dup_02.d run/dup_03.d run/foreach_16.d run/keys_01.d run/length_02.d run/opCatAssign_02.d run/opCatAssign_03.d run/opCatAssign_04.d run/opCatAssign_05.d run/reverse_01.d run/reverse_02.d run/reverse_03.d run/reverse_04.d run/sizeof_01.d run/sizeof_02.d run/sizeof_03.d run/sizeof_04.d run/slice_05.d run/slice_07.d run/slice_09.d run/sort_01.d run/sort_02.d run/unicode_01.d run/unicode_02.d run/values_01.d
diffstat 38 files changed, 557 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/align_04.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,7 @@
+align (2) struct MyStruct{
+	int a;
+	byte* b;
+	int c(){	
+		return 8;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/extern_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,5 @@
+extern (C) int test(char c);
+
+int check(){
+	return test('a');
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/extern_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,5 @@
+extern (D) int test(char c);
+
+int check(){
+	return test('a');
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/align_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,3 @@
+align (1) int check(){
+	return 5;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/align_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,3 @@
+align (-1) int check(){
+	return 5;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/align_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,5 @@
+align (1) struct MyStruct{
+	int a;
+	byte* b;
+	int c();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/align_05.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,7 @@
+align (2) class MyClass{
+	int a;
+	byte* b;
+	int c(){	
+		return 8;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/bounds_checking_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,6 @@
+int main(){
+	byte[5] a;
+	a[100]=3;
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nocompile/length_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,5 @@
+int main(){
+	int[char[]] array;
+	array.length=2;
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/norun/slice_06.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	bit[] a;
+	a.length=2;
+	a[] = true;
+	assert(a[0]);
+	assert(a[1]);
+	
+	bit[] b;
+	b.length=2;
+	assert(!b[0]);
+	assert(!b[1]);
+	
+	b[1..2] = a[0..1];
+	assert(!b[0]);
+	assert(b[1]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/norun/slice_08.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	bit[] a;
+	a.length=2;
+	a[] = true;
+	assert(a[0]);
+	assert(a[1]);
+	
+	bit[] b;
+	b.length=2;
+	assert(!b[0]);
+	assert(!b[1]);
+	
+	b[0..1] = a[1..2];
+	assert(b[0]);
+	assert(!b[1]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/array_initialization_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,9 @@
+int main(){
+	static int[5] a = [ 3:2, 3, 0:5, -2];
+	assert(a[0]== 5);
+	assert(a[1]==-2);
+	assert(a[2]== 0);
+	assert(a[3]== 2);
+	assert(a[4]== 3);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/dup_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,23 @@
+int main(){
+	byte[] a;
+	a.length=3;
+	a[0]=3;
+	a[1]=9;
+	a[2]=18;
+
+	byte[] b= a.dup;
+	a[2]='A';
+	b[0]='B';
+
+	assert(a.length==3);
+	assert(a[0]==3);
+	assert(a[1]==9);
+	assert(a[2]=='A');
+
+	assert(b.length==3);
+	assert(b[0]=='B');
+	assert(b[1]==9);
+	assert(b[2]==18);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/dup_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,23 @@
+int main(){
+	bit a[];
+	a.length=3;
+	a[0]=false;
+	a[1]=false;
+	a[2]=true;
+
+	bit[] b=a.dup;
+	a[1]=true;
+	b[0]=true;
+
+	assert(a.length==3);
+	assert(!a[0]);
+	assert(a[1]);
+	assert(a[2]);
+
+	assert(b.length==3);
+	assert(b[0]);
+	assert(!b[1]);
+	assert(b[2]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/dup_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,26 @@
+int main(){
+	byte[] a= new byte[5];
+	byte[] b=a;
+
+	assert(a[3]==0);
+	assert(b[3]==0);
+
+	a[1]=1;
+	assert(a[1]==1);
+	assert(b[1]==1);
+
+	b[3]=2;
+	assert(a[3]==2);
+	assert(b[3]==2);
+	
+	b=a.dup;
+
+	b[3]=7;
+	assert(a[3]==2);
+	assert(b[3]==7);
+
+	a[2]=5;
+	assert(a[2]==5);
+	assert(b[2]==0);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/foreach_16.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,19 @@
+int main(){
+	char[] string;
+	string.length=4;
+	string[0] = 0xF0;
+	string[1] = 0x9D;
+	string[2] = 0x83;
+	string[3] = 0x93;
+
+	int count=0;
+	wchar tmp;
+	foreach(wchar value ; string){
+		tmp=value;
+		count++;
+	}
+	assert(count==1);
+	assert(tmp==0x01D0D3);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/keys_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,38 @@
+int main(){
+	int[char[]] array;
+	array["eins"]=1;
+	array["zwei"]=2;
+	array["drei"]=3;
+
+	char[][] key = array.keys;
+	assert(key.length==3);
+	
+	bool have[3];
+
+	assert(!have[0]);
+	assert(!have[1]);
+	assert(!have[2]);
+
+	foreach(char[] value; key){
+		switch(value){
+			case "eins":{
+				have[0]=true;
+				break;
+			}case "zwei":{
+				have[1]=true;
+				break;
+			}case "drei":{
+				have[2]=true;
+				break;
+			}default:{
+				assert(0);
+			}
+		}
+	}	
+
+	assert(have[0]);
+	assert(have[1]);
+	assert(have[2]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/length_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,8 @@
+int main(){
+	int[char[]] array;
+	assert(array.length == 0);
+	array["drei"]=3;
+	array["sieben"]=7;
+	assert(array.length == 2);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/opCatAssign_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,19 @@
+int main(){
+	int[] a;
+	a.length=3;
+	a[0]=2;
+	a[1]=4;
+	a[2]=8;
+	assert(a.length==3);
+
+	a~=a;
+	assert(a.length==6);
+	assert(a[0]==2);
+	assert(a[1]==4);
+	assert(a[2]==8);
+	assert(a[3]==2);
+	assert(a[4]==4);
+	assert(a[5]==8);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/opCatAssign_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,24 @@
+int main(){
+	int[] a;
+	a.length=3;
+	a[0]=2;
+	a[1]=4;
+	a[2]=8;
+	assert(a.length==3);
+
+	int[] b;
+	b.length=2;
+	b[0]=1;
+	b[1]=2;
+	assert(b.length==2);
+
+	a~=b;
+	assert(a.length==5);
+	assert(a[0]==2);
+	assert(a[1]==4);
+	assert(a[2]==8);
+	assert(a[3]==1);
+	assert(a[4]==2);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/opCatAssign_04.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,24 @@
+int main(){
+	bit[] a;
+	a.length=3;
+	a[0]=true;
+	a[1]=true;
+	a[2]=true;
+	assert(a.length==3);
+
+	bit[] b;
+	b.length=2;
+	b[0]=false;
+	b[1]=false;
+	assert(b.length==2);
+
+	a~=b;
+	assert(a.length==5);
+	assert(a[0]);
+	assert(a[1]);
+	assert(a[2]);
+	assert(!a[3]);
+	assert(!a[4]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/opCatAssign_05.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,22 @@
+int main(){
+	bit[] a;
+	a.length=3;
+	a[0]=true;
+	a[1]=false;
+	a[2]=true;
+	assert(a.length==3);
+	assert(a[0]);
+	assert(!a[1]);
+	assert(a[2]);
+
+	a~=a;
+	assert(a.length==6);
+	assert(a[0]);
+	assert(!a[1]);
+	assert(a[2]);
+	assert(a[3]);
+	assert(!a[4]);
+	assert(a[5]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/reverse_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	bit a[];
+	a.length=3;
+	a[0]=true;
+	a[1]=false;
+	a[2]=false;
+
+	bit[] b=a.reverse;
+	assert(a.length==3);
+	assert(!a[0]);
+	assert(!a[1]);
+	assert(a[2]);
+	assert(b.length==3);
+	assert(!b[0]);
+	assert(!b[1]);
+	assert(b[2]);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/reverse_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,17 @@
+int main(){
+	bit a[3];
+	a[0]=true;
+	a[1]=false;
+	a[2]=false;
+
+	bit[] b=a.reverse;
+	assert(b.length==3);
+	assert(!b[0]);
+	assert(!b[1]);
+	assert(b[2]);
+	assert(a.length==3);
+	assert(!a[0]);
+	assert(!a[1]);
+	assert(a[2]);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/reverse_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,17 @@
+int main(){
+	byte a[3];
+	a[0]=3;
+	a[1]=9;
+	a[2]=18;
+
+	byte[] b=a.reverse;
+	assert(b.length==3);
+	assert(b[0]==18);
+	assert(b[1]==9);
+	assert(b[2]==3);
+	assert(a.length==3);
+	assert(a[0]==18);
+	assert(a[1]==9);
+	assert(a[2]==3);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/reverse_04.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	byte a[];
+	a.length=3;
+	a[0]=3;
+	a[1]=9;
+	a[2]=18;
+
+	byte[] b=a.reverse;
+	assert(b.length==3);
+	assert(b[0]==18);
+	assert(b[1]==9);
+	assert(b[2]==3);
+	assert(a.length==3);
+	assert(a[0]==18);
+	assert(a[1]==9);
+	assert(a[2]==3);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sizeof_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,6 @@
+int main(){
+	int i[4];
+	assert(i.length==4);
+	assert(i.sizeof==4*int.sizeof);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sizeof_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,7 @@
+int main(){
+	int i[];
+	i.length=4;
+	assert(i.length==4);
+	assert(i.sizeof==8);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sizeof_03.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,7 @@
+int main(){
+	bit i[];
+	i.length=4;
+	assert(i.length==4);
+	assert(i.sizeof==8);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sizeof_04.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,8 @@
+int main(){
+	int[char[]] array;
+	assert(array.sizeof == 8);
+	array["drei"]=3;
+	array["sieben"]=7;
+	assert(array.sizeof == 8);
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/slice_05.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	byte[] a;
+	a.length=2;
+	a[] = 1;
+	assert(a[0]);
+	assert(a[1]);
+	
+	byte[] b;
+	b.length=2;
+	assert(!b[0]);
+	assert(!b[1]);
+	
+	b[1..2] = a[0..1];
+	assert(!b[0]);
+	assert(b[1]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/slice_07.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,18 @@
+int main(){
+	bit[] a;
+	a.length=2;
+	a[] = true;
+	assert(a[0]);
+	assert(a[1]);
+	
+	bit[] b;
+	b.length=2;
+	assert(!b[0]);
+	assert(!b[1]);
+	
+	b[0..1] = a[0..1];
+	assert(b[0]);
+	assert(!b[1]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/slice_09.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,19 @@
+int main(){
+	bit[] a;
+	a.length=2;
+	a[] = true;
+	assert(a[0]);
+	assert(a[1]);
+	
+	bit[] b;
+	b.length=2;
+	assert(!b[0]);
+	assert(!b[1]);
+
+	try{
+		b[1..2] = a[0..1];
+	}catch(Exception e){
+		return 0;
+	}
+	assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sort_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,21 @@
+int main(){
+	bit a[];
+	a.length=3;
+	a[0]=false;
+	a[1]=true;
+	a[2]=false;
+
+	bit[] b=a.sort;
+
+	assert(a.length==3);
+	assert(!a[0]);
+	assert(!a[1]);
+	assert(a[2]);
+
+	assert(b.length==3);
+	assert(!b[0]);
+	assert(!b[1]);
+	assert(b[2]);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/sort_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,21 @@
+int main(){
+	byte a[];
+	a.length=3;
+	a[0]=3;
+	a[1]=1;
+	a[2]=2;
+
+	byte[] b=a.sort;
+
+	assert(a.length==3);
+	assert(a[0]==1);
+	assert(a[1]==2);
+	assert(a[2]==3);
+
+	assert(b.length==3);
+	assert(b[0]==1);
+	assert(b[1]==2);
+	assert(b[2]==3);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/unicode_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,10 @@
+int main(){
+	char[] a="\u00C4";
+	char[] b="\u0041\u0308";
+	
+	if(b>a){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/unicode_02.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,10 @@
+int main(){
+	char[] a="\u00C4";
+	char[] b="\u0041\u0308";
+	
+	if(b>a){
+		assert(0);
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/values_01.d	Sun Sep 26 15:54:31 2004 +0000
@@ -0,0 +1,25 @@
+int main(){
+	int[char[]] array;
+	array["eins"]=1;
+	array["zwei"]=2;
+	array["drei"]=3;
+
+	int[] data = array.values;
+	assert(data.length==3);
+	
+	byte have[3];
+
+	assert(have[0]==0);
+	assert(have[1]==0);
+	assert(have[2]==0);
+
+	foreach(int value; data){
+		have[value-1]++;
+	}	
+
+	assert(have[0]==1);
+	assert(have[1]==1);
+	assert(have[2]==1);
+
+	return 0;
+}