Remove invalid tests for image palettes in GdiPlusTest (#5671)
[mono.git] / mcs / class / System.Drawing / Test / System.Drawing / TestPoint.cs
1 // Tests for System.Drawing.Point.cs
2 //
3 // Author: Mike Kestner (mkestner@speakeasy.net)
4 //                 Improvements by Jordi Mas i Hernandez <jmas@softcatala.org>
5 // Copyright (c) 2001 Ximian, Inc.
6
7 //
8 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29
30 using NUnit.Framework;
31 using System;
32 using System.Drawing;
33 using System.Security.Permissions;
34
35 namespace MonoTests.System.Drawing{
36
37         [TestFixture]   
38         [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
39         public class PointTest {
40                 Point pt1_1;
41                 Point pt1_0;
42                 Point pt0_1;
43         
44                 [TearDown]
45                 public void Clean() {}
46                 
47                 [SetUp]
48                 public void GetReady()          
49                 {
50                         pt1_1 = new Point (1, 1);
51                         pt1_0 = new Point (1, 0);
52                         pt0_1 = new Point (0, 1);
53                 }
54                                 
55         
56                 [Test]
57                 public void EqualsTest () 
58                 {
59                         Assert.AreEqual (pt1_1, pt1_1, "#1");
60                         Assert.AreEqual (pt1_1, new Point (1, 1), "#2");
61                         Assert.IsTrue (!pt1_1.Equals (pt1_0), "#3");
62                         Assert.IsTrue (!pt1_1.Equals (pt0_1), "#4");
63                         Assert.IsTrue (!pt1_0.Equals (pt0_1), "#5");
64                 }
65                 
66                 [Test]
67                 public void EqualityOpTest () 
68                 {
69 #pragma warning disable 1718 // Comparison made to same variable
70                         Assert.IsTrue (pt1_1 == pt1_1, "#1");
71 #pragma warning restore 1718
72                         Assert.IsTrue (pt1_1 == new Point (1, 1), "#2");
73                         Assert.IsTrue (!(pt1_1 == pt1_0), "#3");
74                         Assert.IsTrue (!(pt1_1 == pt0_1), "#4");
75                         Assert.IsTrue (!(pt1_0 == pt0_1), "#5");
76                 }
77
78                 [Test]
79                 public void InequalityOpTest () 
80                 {
81 #pragma warning disable 1718 // Comparison made to same variable
82                         Assert.IsTrue (!(pt1_1 != pt1_1), "#1");
83 #pragma warning restore 1718
84                         Assert.IsTrue (!(pt1_1 != new Point (1, 1)), "#2");
85                         Assert.IsTrue (pt1_1 != pt1_0, "#3");
86                         Assert.IsTrue (pt1_1 != pt0_1, "#4");
87                         Assert.IsTrue (pt1_0 != pt0_1, "#5");
88                 }
89         
90                 [Test]
91                 public void CeilingTest () 
92                 {
93                         PointF ptf = new PointF (0.8f, 0.3f);
94                         Assert.AreEqual (pt1_1, Point.Ceiling (ptf), "#1");
95                 }
96         
97                 [Test]
98                 public void RoundTest () 
99                 {
100                         PointF ptf = new PointF (0.8f, 1.3f);
101                         Assert.AreEqual (pt1_1, Point.Round (ptf), "#1");
102                 }
103         
104                 [Test]
105                 public void TruncateTest () 
106                 {
107                         PointF ptf = new PointF (0.8f, 1.3f);
108                         Assert.AreEqual (pt0_1, Point.Truncate (ptf), "#1");
109                 }
110         
111                 [Test]
112                 public void NullTest () 
113                 {
114                         Point pt = new Point (0, 0);
115                         Assert.AreEqual (pt, Point.Empty, "#1");
116                 }
117         
118                 [Test]
119                 public void AdditionTest () 
120                 {
121                         Assert.AreEqual (pt1_1, pt1_0 + new Size (0, 1), "#1");
122                         Assert.AreEqual (pt1_1, pt0_1 + new Size (1, 0), "#2");
123                 }
124         
125                 [Test]
126                 public void SubtractionTest () 
127                 {
128                         Assert.AreEqual (pt1_0, pt1_1 - new Size (0, 1), "#1");
129                         Assert.AreEqual (pt0_1, pt1_1 - new Size (1, 0), "#2");
130                 }
131         
132                 [Test]
133                 public void Point2SizeTest () 
134                 {
135                         Size sz1 = new Size (1, 1);
136                         Size sz2 = (Size) pt1_1;
137         
138                         Assert.AreEqual (sz1, sz2, "#1");
139                 }
140         
141                 [Test]
142                 public void Point2PointFTest () 
143                 {
144                         PointF ptf1 = new PointF (1, 1);
145                         PointF ptf2 = pt1_1;
146         
147                         Assert.AreEqual (ptf1, ptf2, "#1");
148                 }
149         
150                 [Test]
151                 public void ConstructorTest () 
152                 {
153                         int i = (1 << 16) + 1;
154                         Size sz = new Size (1, 1);
155                         Point pt_i = new Point (i);
156                         Point pt_sz = new Point (sz);
157         
158                         Assert.AreEqual (pt_i, pt_sz, "#1");
159                         Assert.AreEqual (pt_i, pt1_1, "#2");
160                         Assert.AreEqual (pt_sz, pt1_1, "#3");
161                 }
162
163                 [Test]
164                 public void ConstructorNegativeLocationTest ()
165                 {
166                         var pt = new Point (unchecked ((int) 0xffe0fc00));
167
168                         Assert.AreEqual (-32, pt.Y, "#1"); // (short) 0xffe0
169                         Assert.AreEqual (-1024, pt.X, "#2"); // (short) 0xfc00
170                 }
171                 
172                 [Test]
173                 public void PropertyTest () 
174                 {
175                         Point pt = new Point (0, 0);
176         
177                         Assert.IsTrue (pt.IsEmpty, "#1");
178                         Assert.IsTrue (!pt1_1.IsEmpty, "#2");
179                         Assert.AreEqual (1, pt1_0.X, "#3");
180                         Assert.AreEqual (1, pt0_1.Y, "#4");
181                 }
182                 
183                 [Test]
184                 public void OffsetTest () 
185                 {
186                         Point pt = new Point (0, 0);
187                         pt.Offset (0, 1);
188                         Assert.AreEqual (pt, pt0_1, "#1");
189                         pt.Offset (1, 0);
190                         Assert.AreEqual (pt, pt1_1, "#2");
191                         pt.Offset (0, -1);
192                         Assert.AreEqual (pt, pt1_0, "#3");
193                 }
194                 
195                 [Test]
196                 public void GetHashCodeTest ()
197                 {
198                         Assert.AreEqual (0, pt1_1.GetHashCode (), "#1");
199                         Assert.AreEqual (1, pt1_0.GetHashCode (), "#2");
200                         Assert.AreEqual (1, pt0_1.GetHashCode (), "#3");
201                         Point pt = new Point(0xFF, 0xFF00);
202                         Assert.AreEqual (0xFFFF, pt.GetHashCode (), "#4");
203                 }
204
205                 [Test]
206                 public void ToStringTest ()
207                 {
208                         Assert.AreEqual ("{X=1,Y=1}", pt1_1.ToString (), "#1");
209                         Assert.AreEqual ("{X=1,Y=0}", pt1_0.ToString (), "#2");
210                         Assert.AreEqual ("{X=0,Y=1}", pt0_1.ToString (), "#3");
211                 }
212
213                 [Test]
214                 public void AddTest ()
215                 {
216                         Assert.AreEqual (pt1_1, Point.Add (pt1_0, new Size (0, 1)), "#1");
217                         Assert.AreEqual (pt1_1, Point.Add (pt0_1, new Size (1, 0)), "#2");
218                 }
219
220                 [Test]
221                 public void OffsetTestPoint ()
222                 {
223                         Point pt = new Point (0, 0);
224                         pt.Offset (new Point (0, 1));
225                         Assert.AreEqual (pt, pt0_1, "#1");
226                         pt.Offset (new Point (1, 0));
227                         Assert.AreEqual (pt, pt1_1, "#2");
228                         pt.Offset (new Point (0, -1));
229                         Assert.AreEqual (pt, pt1_0, "#3");
230                 }
231
232                 [Test]
233                 public void SubtractTest ()
234                 {
235                         Assert.AreEqual (pt1_0, Point.Subtract (pt1_1, new Size (0, 1)), "#1");
236                         Assert.AreEqual (pt0_1, Point.Subtract (pt1_1, new Size (1, 0)), "#2");
237                 }
238
239         }
240 }
241