module Tests; import Core.Array; import Core.Test; import Core.Types; template struct Core::Array; using TestArray = Core::Array; static void testToString1() { TestArray a; a[0] = 1; a[1] = 243; a[2] = 423; Core::testString("[1, 243, 423]", a); Core::Array b = {{1, 2, 3}}; Core::testString("[1, 2, 3]", b); } static void testToString2() { Core::Array a; a[0] = 1; Core::testString("[1]", a); } static void testReadConst() { TestArray a; for(size_t i = 0; i < a.getLength(); i++) { a[i] = i; } const TestArray& c = a; for(size_t i = 0; i < c.getLength(); i++) { Core::test(i, c[i]); } } static void testRangeFor() { TestArray a; for(size_t i = 0; i < a.getLength(); i++) { a[i] = i; } for(size_t& i : a) { i++; } for(size_t i = 0; i < a.getLength(); i++) { Core::test(i + 1, a[i]); } } void testArray() { testToString1(); testToString2(); testReadConst(); testRangeFor(); }