1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Vladimir N. Molotkov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.security.spec; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.BigInteger; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.security.spec.ECPoint; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests for <code>ECPoint</code> class fields and methods. 32f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ECPointTest extends TestCase { 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Tests 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * Test #1 for <code>ECPoint(BigInteger, BigInteger)</code> constructor<br> 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: creates <code>ECPoint</code> instance<br> 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: valid parameters passed<br> 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must pass without any exceptions 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testECPoint01() { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.ZERO, BigInteger.ZERO); 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(-23456L), BigInteger.valueOf(-23456L)); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(123456L), BigInteger.valueOf(123456L)); 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(-56L), BigInteger.valueOf(234L)); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(3456L), BigInteger.valueOf(-2344L)); 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * Test #2 for <code>ECPoint(BigInteger x, BigInteger y)</code> constructor<br> 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: throws <code>NullPointerException</code> if <code>x</code>or 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>y</code> is <code>null</code><br> 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: pass <code>null</code> as mentioned parameters<br> 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must throw <code>NullPointerException</code> 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testECPoint02() { 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 1: x is null 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(null, BigInteger.ZERO); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("#1: Expected NPE not thrown"); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ok) { 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 2: y is null 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.ZERO, null); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("#2: Expected NPE not thrown"); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ok) { 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 3: both : x and y are null 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(null, null); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("#3: Expected NPE not thrown"); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException ok) { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>getAffineX()</code> method<br> 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns affine <code>x</code> coordinate<br> 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: <code>ECPoint</code> instance 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * created using valid parameters<br> 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must return affine <code>x</code> coordinate 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * which is equal to the one passed to the constructor; 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (both must refer the same object) 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetAffineX01() { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigInteger x = BigInteger.valueOf(-23456L); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p = new ECPoint(x, BigInteger.valueOf(23456L)); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigInteger xRet = p.getAffineX(); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(x, xRet); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertSame(x, xRet); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>getAffineX()</code> method<br> 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns <code>null</code> for <code>ECPoint.POINT_INFINITY</code><br> 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: none<br> 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must return <code>null</code> for 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>ECPoint.POINT_INFINITY</code> 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetAffineX02() { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(ECPoint.POINT_INFINITY.getAffineX()); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>getAffineY()</code> method<br> 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns affine <code>y</code> coordinate<br> 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: <code>ECPoint</code> instance 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * created using valid parameters<br> 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must return affine <code>y</code> coordinate 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * which is equal to the one passed to the constructor; 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (both must refer the same object) 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetAffineY01() { 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigInteger y = BigInteger.valueOf(23456L); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p = new ECPoint(BigInteger.valueOf(-23456L), y); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigInteger yRet = p.getAffineY(); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(y, yRet); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertSame(y, yRet); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>getAffineX()</code> method<br> 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: returns <code>null</code> for <code>ECPoint.POINT_INFINITY</code><br> 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: none<br> 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: must return <code>null</code> for 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>ECPoint.POINT_INFINITY</code> 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testGetAffineY02() { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(ECPoint.POINT_INFINITY.getAffineY()); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>equals(Object other)</code> method<br> 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: return true if this and other objects are equal<br> 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: see test comments<br> 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: all objects in this test must be equal 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testEqualsObject01() { 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 1: must be equal to itself 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p2=null, p1 = 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ONE); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(p1.equals(p1)); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 2: equal objects 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p1 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ONE); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p2 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.valueOf(1L)); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(p1.equals(p2) && p2.equals(p1)); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 3: equal POINT_INFINITY object(s) 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p1 = ECPoint.POINT_INFINITY; 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p2 = ECPoint.POINT_INFINITY; 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(p1.equals(p2) && p2.equals(p1)); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>equals(Object other)</code> method<br> 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: return false if this and other objects are not equal<br> 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test preconditions: see test comments<br> 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expected: all objects in this test must be not equal 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testEqualsObject02() { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 1: must be not equal to null 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p2=null, p1 = 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ONE); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(p1.equals(p2)); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 2: not equal objects - x 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p1 = new ECPoint(BigInteger.valueOf(-23457L), BigInteger.ONE); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p2 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.valueOf(1L)); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(p1.equals(p2) || p2.equals(p1)); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 3: not equal objects - y 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p1 = new ECPoint(BigInteger.valueOf(-23457L), BigInteger.ONE); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p2 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ZERO); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(p1.equals(p2) || p2.equals(p1)); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // test case 4: not equal - some point and POINT_INFINITY 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p1 = ECPoint.POINT_INFINITY; 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project p2 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ZERO); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(p1.equals(p2) || p2.equals(p1)); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #1 for <code>hashCode()</code> method.<br> 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: must return the same value if invoked 197f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * repeatedly on the same object. 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testHashCode01() { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint f = new ECPoint(BigInteger.valueOf(-23457L), BigInteger.ONE); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int hc = f.hashCode(); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(hc == f.hashCode() && 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode() && 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == f.hashCode()); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 211f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // the same for POINT_INFINITY 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc = ECPoint.POINT_INFINITY.hashCode(); 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(hc == ECPoint.POINT_INFINITY.hashCode() && 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode() && 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hc == ECPoint.POINT_INFINITY.hashCode()); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Test #2 for <code>hashCode()</code> method.<br> 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Assertion: must return the same value if invoked 228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * on equal (according to the <code>equals(Object)</code> method) objects. 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void testHashCode02() { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p1 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.ONE); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ECPoint p2 = new ECPoint(BigInteger.valueOf(-23456L), BigInteger.valueOf(1L)); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(p1.hashCode(), p2.hashCode()); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 237