// Test reshape() proc main() { var a; /* Variable array */ a = new Array(3); a[0] = 0; a[1] = 1; a[2] = 2; try { a[3] = 3; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", a[3], "}\n"; a[3] = 3; "a[3] = ", a[3], "\n"; a = a.reshape(2); try { a[2] = 2; } catch(e) { "No a[2] as expected\n"; } "a = {", a[0], ", ", a[1], "}\n"; /* String */ a = @ "012"; try { a[3] = '3'; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", Int(a[3]) , "}\n"; a[3] = '3'; "a[3] = ", a[3], "\n"; a = a.reshape(2); try { a[2] = '2'; } catch(e) { "No a[2] as expected\n"; } "a = \"", a, "\"\n"; /* Wide String */ a = @ L"012"; try { a[3] = '3'; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", Int(a[3]), "}\n"; a[3] = '3'; "a[3] = ", a[3], "\n"; a = a.reshape(2); try { a[2] = '2'; } catch(e) { "No a[2] as expected\n"; } "a = \"", a, "\"\n"; /* Packint */ a = new PackInt(3); a[0] = 0; a[1] = 1; a[2] = 2; try { a[3] = 3; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", a[3], "}\n"; a[3] = 3; "a[3] = ", a[3], "\n"; a = a.reshape(2); try { a[2] = 2; } catch(e) { "No a[2] as expected\n"; } "a = {", a[0], ", ", a[1], "}\n"; /* Packfloat */ a = new PackFloat(3); a[0] = 0; a[1] = 1; a[2] = 2; try { a[3] = 3; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", a[3], "}\n"; a[3] = 3; "a[3] = ", a[3], "\n"; a = a.reshape(2); try { a[2] = 2; } catch(e) { "No a[2] as expected\n"; } "a = {", a[0], ", ", a[1], "}\n"; /* Dictionary */ a = new Dict(3); a[0] = 0; a[1] = 1; a[2] = 2; try { a[3] = 3; } catch(e) { "No a[3] as expected\n"; } a = a.reshape(4); "a = {", a[0], ", ", a[1], ", ", a[2], ", ", a[3], "}\n"; a[3] = 3; "a[3] = ", a[3], "\n"; try { a = a.reshape(2); } catch(e) { "Can't shrink dict, as expected\n"; } }