1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes* @author Vladimir N. Molotkov 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes*/ 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.security.tests.java.security.spec; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.math.BigInteger; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.security.spec.ECFieldF2m; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for <code>ECFieldF2m</code> class fields and methods. 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ECFieldF2m_ImplTest extends TestCase { 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Support class for this test. 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Encapsulates <code>ECFieldF2m</code> testing 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * domain parameters. 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final class ECFieldF2mDomainParams { 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>NPE</code> reference object of class NullPointerException. 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * NullPointerException must be thrown by <code>ECFieldF2m</code> 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * ctors in some circumstances 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static final NullPointerException NPE = new NullPointerException(); 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * <code>IArgE</code> reference object of class IllegalArgumentException. 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * IllegalArgumentException must be thrown by <code>ECFieldF2m</code> 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * ctors in some circumstances 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static final IllegalArgumentException IArgE = new IllegalArgumentException(); 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The <code>m</code> parameter for <code>ECFieldF2m</code> 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * ctor for the current test. 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int m; 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The <code>rp</code> parameter for <code>ECFieldF2m</code> 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * ctor for the current test. 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final BigInteger rp; 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The <code>ks</code> parameter for <code>ECFieldF2m</code> 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * ctor for the current test. 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int[] ks; 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Exception expected with this parameters set or <code>null</code> 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * if no exception expected. 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final Exception x; 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Constructs ECFieldF2mDomainParams 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param m 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param rp 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param ks 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @param expectedException 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams(final int m, 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final BigInteger rp, 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final int[] ks, 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes final Exception expectedException) { 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.m = m; 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.rp = rp; 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.ks = ks; 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes this.x = expectedException; 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Set of parameters used for <code>ECFieldF2m(int, BigInteger)</code> 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * constructor tests. 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private final ECFieldF2mDomainParams[] intBigIntegerCtorTestParameters = 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams[] { 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 0: valid m and rp - trinomial basis params 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1999, 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(367).setBit(1999), 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null), 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 1: valid m and rp - pentanomial basis params 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(1).setBit(2).setBit(981).setBit(2000), 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null), 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 2: valid m, invalid (null) rp 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1963, 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes (BigInteger)null, 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.NPE), 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 3: valid m, invalid rp - bit 0 not set 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1999, 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(1).setBit(367).setBit(1999), 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 4: valid m, invalid rp - bit m not set 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1999, 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(367).setBit(1998), 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 5: valid m, invalid rp - bit k improperly set 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1999, 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(2367).setBit(1999), 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 6: valid m, invalid rp - k1 k2 k3 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(2001).setBit(2002).setBit(2003).setBit(2000), 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 7: valid m, invalid rp - number of bits set 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(2000), 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 8: valid m, invalid rp - number of bits set 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(1).setBit(2).setBit(2000), 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 9: valid m, invalid rp - number of bits set 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(1).setBit(2). 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes setBit(981).setBit(985).setBit(2000), 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 10: valid m, invalid rp 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2000, 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L), 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // set 11: invalid m 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2mDomainParams( 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -2000, 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BigInteger.valueOf(0L).setBit(0).setBit(1).setBit(2). 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes setBit(981).setBit(2000), 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes null, 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams.IArgE), 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }; 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests for constructor <code>ECFieldF2m(int, BigInteger)</code><br> 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: constructs new <code>ECFieldF2m</code> object 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * using valid parameters m and rp. rp represents trinomial basis. 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: constructs new <code>ECFieldF2m</code> object 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * using valid parameters m and rp. rp represents pentanomial basis. 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: IllegalArgumentException if m is not positive. 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: NullPointerException if rp is null. 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Assertion: IllegalArgumentException if rp is invalid. 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public final void testECFieldF2mintBigInteger() { 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for(int i=0; i<intBigIntegerCtorTestParameters.length; i++) { 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ECFieldF2mDomainParams tp = intBigIntegerCtorTestParameters[i]; 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // perform test 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ECFieldF2m(tp.m, tp.rp); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (tp.x != null) { 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // exception has been expected 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(getName() + ", set " + i + 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes " FAILED: expected exception has not been thrown"); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e){ 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (tp.x == null || !e.getClass().isInstance(tp.x)) { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // exception: failure 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // if it has not been expected 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // or wrong one has been thrown 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail(getName() + ", set " + i + 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes " FAILED: unexpected " + e); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 220