示例#1
0
  def testGetAttr(self):
    with ops.device("/device:CPU:0"):

      class Foo(object):

        def __init__(self, x):
          self.x = x

      v = values.DistributedDelegate(
          {"/device:CPU:0": Foo(7), "/device:GPU:0": Foo(8)})
      self.assertEqual(7, v.x)
      with self.assertRaises(AttributeError):
        _ = v.y
示例#2
0
 def testOperatorOverride(self):
     with ops.device("/device:CPU:0"):
         v = values.DistributedDelegate({
             "/device:CPU:0": 7,
             "/device:GPU:0": 8
         })
         # v should act like int(7).
         self.assertEqual(8, v + 1)
         self.assertEqual(10, 3 + v)
         self.assertEqual(14, v + v)
         self.assertEqual(5, v - 2)
         self.assertEqual(6, 13 - v)
         self.assertEqual(0, v - v)
         self.assertEqual(14, v * 2)
         self.assertEqual(21, 3 * v)
         self.assertEqual(49, v * v)
         self.assertEqual(3.5, v / 2)
         self.assertEqual(1.5, 10.5 / v)
         self.assertEqual(3, v // 2)
         self.assertEqual(2, 15 // v)
         self.assertEqual(1, v % 2)
         self.assertEqual(2, 16 % v)
         self.assertTrue(v < 12)
         self.assertTrue(v <= 12)
         self.assertFalse(v > 12)
         self.assertFalse(v >= 12)
         self.assertFalse(12 < v)
         self.assertFalse(12 <= v)
         self.assertTrue(12 > v)
         self.assertTrue(12 >= v)
         self.assertEqual(3, v & 3)
         self.assertEqual(3, 11 & v)
         self.assertEqual(15, v | 8)
         self.assertEqual(23, 16 | v)
         self.assertEqual(4, v ^ 3)
         self.assertEqual(12, 11 ^ v)
         self.assertEqual(343, pow(v, 3))
         self.assertEqual(3, pow(v, 3, 10))
         self.assertEqual(128, pow(2, v))
         self.assertEqual(-7, -v)
         self.assertEqual(~7, ~v)
         self.assertEqual(7, abs(v))
         with self.assertRaises(TypeError):
             _ = v[2]