import TestLib;
StartTest("read1");
{
file fin=input("io/data1.txt").read(1);
real[] a=fin;
assert(a.length == 10);
int c=-1;
for(int i=0; i < a.length; ++i)
assert(a[i] == ++c);
seek(fin,0);
real[] b=fin.line();
assert(fin.line);
assert(b[0] == a.length);
real[] b=fin;
c=-1;
for(int i=0; i < b.length; ++i)
assert(b[i] == ++c);
seek(fin,0);
real nx=fin;
real[] b=fin.dimension(5);
assert(all(fin.dimension == new int[] {5,-1,-1}));
c=-1;
for(int i=0; i < 5; ++i)
assert(b[i] == ++c);
}
EndTest();
StartTest("read2");
{
file fin=input("io/data2.txt").read(2);
real[][] a=fin;
assert(a.length == 2);
assert(a[0].length == 3);
int c=-1;
for(int i=0; i < a.length; ++i)
for(int j=0; j < a[0].length; ++j)
assert(a[i][j] == ++c);
seek(fin,0);
real nx=fin;
real ny=fin;
c=-1;
real[][] b=fin.dimension(a.length,a[0].length);
assert(all(fin.dimension == new int[] {a.length,a[0].length,-1}));
for(int i=0; i < a.length; ++i)
for(int j=0; j < a[0].length; ++j)
assert(b[i][j] == ++c);
}
EndTest();
StartTest("read3");
{
file fin=input("io/data3.txt").read(3);
real[][][] a=fin;
assert(a.length == 2);
assert(a[0].length == 3);
assert(a[0][0].length == 4);
int c=-1;
for(int i=0; i < a.length; ++i)
for(int j=0; j < a[0].length; ++j)
for(int k=0; k < a[0][0].length; ++k)
assert(a[i][j][k] == ++c);
seek(fin,0);
real nx=fin;
real ny=fin;
real nz=fin;
real[][][] b=fin.dimension(a.length,a[0].length,a[0][0].length);
assert(all(fin.dimension ==
new int[] {a.length,a[0].length,a[0][0].length}));
c=-1;
for(int i=0; i < a.length; ++i)
for(int j=0; j < a[0].length; ++j)
for(int k=0; k < a[0][0].length; ++k)
assert(b[i][j][k] == ++c);
}
EndTest();