MCPcopy Create free account
hub / github.com/ml-explore/mlx / test_inplace

Method test_inplace

python/tests/test_array.py:1890–1940  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1888 self.assertEqual((mx.array(False) ^ True).item(), True)
1889
1890 def test_inplace(self):
1891 iops = [
1892 "__iadd__",
1893 "__isub__",
1894 "__imul__",
1895 "__ifloordiv__",
1896 "__imod__",
1897 "__ipow__",
1898 "__ixor__",
1899 ]
1900
1901 for op in iops:
1902 a = mx.array([1, 2, 3])
1903 a_np = np.array(a)
1904 b = a
1905 b = getattr(a, op)(3)
1906 self.assertTrue(mx.array_equal(a, b))
1907 out_np = getattr(a_np, op)(3)
1908 self.assertTrue(np.array_equal(out_np, a))
1909
1910 with self.assertRaises(ValueError):
1911 a = mx.array([1])
1912 a /= 1
1913
1914 a = mx.array([2.0])
1915 b = a
1916 b /= 2
1917 self.assertEqual(b.item(), 1.0)
1918 self.assertEqual(b.item(), a.item())
1919
1920 a = mx.array(True)
1921 b = a
1922 b &= False
1923 self.assertEqual(b.item(), False)
1924 self.assertEqual(b.item(), a.item())
1925
1926 a = mx.array(False)
1927 b = a
1928 b |= True
1929 self.assertEqual(b.item(), True)
1930 self.assertEqual(b.item(), a.item())
1931
1932 # In-place matmul on its own
1933 a = mx.array([[1.0, 2.0], [3.0, 4.0]])
1934 b = a
1935 b @= a
1936 self.assertTrue(mx.array_equal(a, b))
1937
1938 a = mx.array(False)
1939 a ^= True
1940 self.assertEqual(a.item(), True)
1941
1942 def test_inplace_preserves_ids(self):
1943 a = mx.array([1.0])

Callers

nothing calls this directly

Calls 2

itemMethod · 0.80
arrayMethod · 0.60

Tested by

no test coverage detected