blob: 26a78b0bdc2ea12c354251fc47e3f511ddf2c0d4 [file] [log] [blame]
 # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Tests for the geometry module.""" import unittest from devil.utils import geometry as g class PointTest(unittest.TestCase): def testStr(self): p = g.Point(1, 2) self.assertEqual(str(p), '(1, 2)') def testAdd(self): p = g.Point(1, 2) q = g.Point(3, 4) r = g.Point(4, 6) self.assertEqual(p + q, r) def testAdd_TypeErrorWithInvalidOperands(self): # pylint: disable=pointless-statement p = g.Point(1, 2) with self.assertRaises(TypeError): p + 4 # Can't add point and scalar. with self.assertRaises(TypeError): 4 + p # Can't add scalar and point. def testMult(self): p = g.Point(1, 2) r = g.Point(2, 4) self.assertEqual(2 * p, r) # Multiply by scalar on the left. def testMult_TypeErrorWithInvalidOperands(self): # pylint: disable=pointless-statement p = g.Point(1, 2) q = g.Point(2, 4) with self.assertRaises(TypeError): p * q # Can't multiply points. with self.assertRaises(TypeError): p * 4 # Can't multiply by a scalar on the right. class RectangleTest(unittest.TestCase): def testStr(self): r = g.Rectangle(g.Point(0, 1), g.Point(2, 3)) self.assertEqual(str(r), '[(0, 1), (2, 3)]') def testCenter(self): r = g.Rectangle(g.Point(0, 1), g.Point(2, 3)) c = g.Point(1, 2) self.assertEqual(r.center, c) def testFromJson(self): r1 = g.Rectangle(g.Point(0, 1), g.Point(2, 3)) r2 = g.Rectangle.FromDict({'top': 1, 'left': 0, 'bottom': 3, 'right': 2}) self.assertEqual(r1, r2)