def test_inplace_mutators(self):
		from grease.component.field import FieldAccessor
		entities = set([2,6,7])
		comp = TestComponent()
		for i in range(9):
			comp[i] = TestData(size=i, xy=TestData(x=i*10, y=i*-10))
		xy_accessor = FieldAccessor(TestField(comp, 'xy'), entities)
		sa = size_accessor = FieldAccessor(TestField(comp, 'size'), entities)
		size_accessor += 1
		xy_accessor.y += 5
		self.assertTrue(sa is size_accessor, (sa, size_accessor))
		for i in range(9):
			if entities in i:
				self.assertEqual(comp[i].size, i + 1)
				self.assertEqual(comp[i].xy.y, i*-10 + 5)
			else:
				self.assertEqual(comp[i].size, i)
				self.assertEqual(comp[i].xy.y, i*-10)
			self.assertEqual(comp[i].xy.x, i*10)

		size_accessor -= 24
		size_accessor *= -12
		size_accessor /= 2
		size_accessor //= 3
		size_accessor %= 7
		size_accessor **= 2
		# TODO: these operators are broken in Python3
		# size_accessor <<= 3
		# size_accessor >>= 1
		# size_accessor |= 0x888
		# size_accessor &= 0xDD7
		# size_accessor ^= 0xF

		for i in range(9):
			if i in entities:
				expected = i + 1 - 24
				expected *= -12
				expected /= 2
				expected //= 3
				expected %= 7
				expected **= 2
				# expected <<= 3
				# expected >>= 1
				# expected |= 0x888
				# expected &= 0xDD7
				# expected ^= 0xF
				self.assertEqual(comp[i].size, expected)
			else:
				self.assertEqual(comp[i].size, i)
			self.assertEqual(comp[i].xy.x, i*10)
dataset/ETHPy150Open caseman/grease/test/field_test.py/FieldAccessorTestCase.test_inplace_mutators/swapped operands of `in`