async def test_async_basic_datatypes_04(self):
        val = await self.con.query_one(
            '''
                SELECT schema::ObjectType {
                    foo := {
                        [(a := 1, b := 2), (a := 3, b := 4)],
                        [(a := 5, b := 6)],
                        <array <tuple<a: int64, b: int64>>>[],
                    }
                } LIMIT 1
            '''
        )

        self.assertEqual(
            val.foo,
            edgedb.Set([
                edgedb.Array([
                    edgedb.NamedTuple(a=1, b=2),
                    edgedb.NamedTuple(a=3, b=4),
                ]),
                edgedb.Array([
                    edgedb.NamedTuple(a=5, b=6),
                ]),
                edgedb.Array([]),
            ]),
        )
    def test_array_2(self):
        t = edgedb.Array((1, 'a'))

        self.assertEqual(repr(t), "[1, 'a']")
        self.assertEqual(str(t), "[1, 'a']")

        self.assertEqual(len(t), 2)
        self.assertEqual(hash(t), hash(edgedb.Array([1, 'a'])))
        self.assertNotEqual(hash(t), hash(edgedb.Array([10, 'ab'])))

        self.assertEqual(t[0], 1)
        self.assertEqual(t[1], 'a')
        with self.assertRaisesRegex(IndexError, 'out of range'):
            t[2]
 def test_array_empty_1(self):
     t = edgedb.Array()
     self.assertEqual(len(t), 0)
     self.assertNotEqual(hash(t), hash(()))
     with self.assertRaisesRegex(IndexError, 'out of range'):
         t[0]
     self.assertEqual(repr(t), "[]")
 def test_array_6(self):
     self.assertNotEqual(edgedb.Array([1, 2, 3]), False)
    def test_array_5(self):
        self.assertEqual(edgedb.Array([1, 2, 3]), [1, 2, 3])

        self.assertEqual([1, 2, 3], edgedb.Array([1, 2, 3]))

        self.assertNotEqual([1, 2, 4], edgedb.Array([1, 2, 3]))

        self.assertNotEqual(edgedb.Array([1, 2, 3]), [1, 3, 2])

        self.assertLess(edgedb.Array([1, 2, 3]), [1, 3, 2])

        self.assertEqual(edgedb.Array([]), [])

        self.assertEqual(edgedb.Array([1]), [1])

        self.assertGreaterEqual(edgedb.Array([1]), [1])

        self.assertNotEqual(edgedb.Array([1]), [])

        self.assertGreater(edgedb.Array([1]), [])

        self.assertNotEqual(edgedb.Array([1]), [2])

        self.assertLess(edgedb.Array([1]), [2])

        self.assertNotEqual(edgedb.Array([1, 2]), [2, 2])

        self.assertNotEqual(edgedb.Array([1, 1]), [2, 2, 1])
 def test_array_3(self):
     t = edgedb.Array((1, []))
     t[1].append(t)
     self.assertEqual(t[1], [t])
     self.assertEqual(repr(t), '[1, [[...]]]')