1bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com/*
2bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Copyright (C) 2011 The Android Open Source Project
3bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com *
4bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Licensed under the Apache License, Version 2.0 (the "License");
5bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * you may not use this file except in compliance with the License.
6bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * You may obtain a copy of the License at
7bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com *
8bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com *      http://www.apache.org/licenses/LICENSE-2.0
9bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com *
10bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Unless required by applicable law or agreed to in writing, software
11bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * distributed under the License is distributed on an "AS IS" BASIS,
12bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * See the License for the specific language governing permissions and
14bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * limitations under the License.
15bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com */
16bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
17e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray// Some parts of this code is Common Public License - v 1.0
18e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray// See NOTICE file in junit project.
19bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
20e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffraypackage junit.framework;
21bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
22bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.compublic class Assert {
23bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    protected Assert() {}
24bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
25bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, boolean expected, boolean actual) {
26bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
27bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
28bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
29bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
30bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
31bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(boolean expected, boolean actual) {
32bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
33bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
34bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
35bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, byte expected, byte actual) {
36bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
37bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
38bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
39bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
40bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
41bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(byte expected, byte actual) {
42bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
43bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
44bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
45bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, short expected, short actual) {
46bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
47bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
48bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
49bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
50bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
51bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(short expected, short actual) {
52bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
53bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
54bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
55bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, int expected, int actual) {
56bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
57bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
58bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
59bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
60bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
61bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(int expected, int actual) {
62bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
63bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
64bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
65bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, long expected, long actual) {
66bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
67bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
68bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
69bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
70bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
71bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(long expected, long actual) {
72bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
73bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
74bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
75bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, char expected, char actual) {
76bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (actual != expected) {
77bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual);
78bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
79bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
80bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
81bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(char expected, char actual) {
82bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
83bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
84bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
85bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, String expected, String actual) {
86bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals(message, (Object) expected, (Object) actual);
87bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
88bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
89bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String expected, String actual) {
90bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", (Object) expected, (Object) actual);
91bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
92bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
93bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(String message, Object expected, Object actual) {
94e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (expected == null && actual == null) {
95e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray            return;
96e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        }
97e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (expected != null && expected.equals(actual)) {
98e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray            return;
99bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
100e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        fail(message, "expected " + expected + " but was " + actual);
101bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
102bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
103bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(Object expected, Object actual) {
104bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual);
105bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
106bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
107bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    // assertEquals with delta
108e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray    static public void assertEquals(String message, double expected, double actual, double delta) {
109e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (Double.compare(expected, actual) == 0) {
110bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            return;
111bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
112e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (!(Math.abs(expected-actual) <= delta)) {
113bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual + "; delta=" + delta);
114bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
115e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray    }
116bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
117bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(double expected, double actual, double delta) {
118bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual, delta);
119bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
120e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray
121e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray    static public void assertEquals(String message, float expected, float actual, float delta) {
122e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (Float.compare(expected, actual) == 0) {
123bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            return;
124bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
125e839716d35f486b6016048ee211ee7e473d46a2aNicolas Geoffray        if (!(Math.abs(expected - actual) <= delta)) {
126bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected " + expected + " but was " + actual + "; delta=" + delta);
127bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
128bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
129bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
130bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertEquals(float expected, float actual, float delta) {
131bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertEquals("", expected, actual, delta);
132bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
133bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
134bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    // other asserts
135bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
136bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertTrue(String message, boolean condition) {
137bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (!condition) {
138bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(message);
139bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
140bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
141bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
142bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertTrue(boolean condition) {
143bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertTrue("", condition);
144bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
145bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
146bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertFalse(String message, boolean condition) {
147bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (condition) {
148bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(message);
149bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
150bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
151bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
152bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertFalse(boolean condition) {
153bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertFalse("", condition);
154bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
155bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
156bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNull(String message, Object reference) {
157bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (reference != null) {
158bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(message);
159bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
160bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
161bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
162bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNull(Object reference) {
163bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertNull("", reference);
164bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
165bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
166bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNotNull(String message, Object reference) {
167bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (reference == null) {
168bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(message);
169bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
170bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
171bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
172bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNotNull(Object reference) {
173bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertNotNull("", reference);
174bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
175bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
176bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertSame(String message, Object expected, Object actual) {
177bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (expected != actual) {
178bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected same " + expected + ", " + actual);
179bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
180bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
181bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
182bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertSame(Object expected, Object actual) {
183bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertSame("", expected, actual);
184bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
185bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
186bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNotSame(String message, Object expected, Object actual) {
187bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (expected == actual) {
188bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            fail(message, "expected not same " + expected + ", " + actual);
189bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
190bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
191bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
192bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void assertNotSame(Object expected, Object actual) {
193bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        assertNotSame("", expected, actual);
194bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
195bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
196bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    // fail
197bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
198bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void fail(String message) {
199bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        throw new AssertionFailedError(message);
200bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
201bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
202bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    public static void fail() {
203bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        throw new AssertionFailedError();
204bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
205bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com
206ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com    protected static void fail(String message, String detail) {
207bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        if (message == null || message.isEmpty()) {
208bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(detail);
209bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        } else {
210bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com            throw new AssertionFailedError(message + ": " + detail);
211bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com        }
212bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com    }
213bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com}
214