|
From: <de...@us...> - 2003-07-04 14:22:44
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/test/h2d
In directory sc8-pr-cvs1:/tmp/cvs-serv31279/h2d
Added Files:
TestMaillage.java
Log Message:
Maj des test pour H2d
--- NEW FILE: TestMaillage.java ---
/*
* @file TestMaillage.java
* @creation 3 juil. 2003
* @modification $Date: 2003/07/04 14:22:41 $
* @license GNU General Public License 2
* @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.dodico.test.h2d;
import com.sun.corba.se.internal.io.util.Arrays;
import org.fudaa.dodico.h2d.H2dElement;
import org.fudaa.dodico.h2d.H2dMaillage;
import org.fudaa.dodico.h2d.H2dMaillageBord;
import org.fudaa.dodico.h2d.H2dPoint;
import junit.framework.TestCase;
/**
* 8
* / | \
* / 7|8 \
* / | \
* 7-- 5---- 6
* |5/ |\ 4 / /
* |/3 |T\ / 6/
* 4-- 2-- 3 /
* |2/ \1| /
* |/ O \|/
* 0----- 1
* Test pour le maillage ci-dessus (T pour trou).
* @author deniger
* @version $Id: TestMaillage.java,v 1.1 2003/07/04 14:22:41 deniger Exp $
*/
public class TestMaillage extends TestCase {
H2dMaillage mail_;
double eps_;
/**
*
*/
public TestMaillage() {
eps_= 1E-15;
}
private void initMaillage() {
H2dPoint[] pts= new H2dPoint[9];
pts[0]= new H2dPoint(0, 0, 15);
pts[1]= new H2dPoint(2, -1, -15);
pts[2]= new H2dPoint(1, 2, -5);
pts[3]= new H2dPoint(2, 2, 30);
pts[4]= new H2dPoint(0, 2, 30);
pts[5]= new H2dPoint(1, 4, 30);
pts[6]= new H2dPoint(10, 11, 30);
pts[7]= new H2dPoint(0, 4, 30);
pts[8]= new H2dPoint(2, 20, 30);
H2dElement[] elt= new H2dElement[9];
elt[0]= new H2dElement(new int[] { 0, 2, 1 });
elt[1]= new H2dElement(new int[] { 1, 3, 2 });
elt[2]= new H2dElement(new int[] { 0, 4, 2 });
elt[3]= new H2dElement(new int[] { 4, 5, 2 });
elt[4]= new H2dElement(new int[] { 5, 3, 6 });
elt[5]= new H2dElement(new int[] { 5, 7, 4 });
elt[6]= new H2dElement(new int[] { 1, 3, 6 });
elt[7]= new H2dElement(new int[] { 7, 8, 5 });
elt[8]= new H2dElement(new int[] { 6, 8, 5 });
mail_= new H2dMaillage(pts, elt);
}
private void initMaillageT6() {
H2dPoint[] pts= new H2dPoint[27];
pts[0]= new H2dPoint(0, 0, 15);
pts[1]= new H2dPoint(2, -1, -15);
pts[2]= new H2dPoint(1, 2, -5);
pts[3]= new H2dPoint(2, 2, 30);
pts[4]= new H2dPoint(0, 2, 30);
pts[5]= new H2dPoint(1, 4, 30);
pts[6]= new H2dPoint(10, 11, 30);
pts[7]= new H2dPoint(0, 4, 30);
pts[8]= new H2dPoint(2, 20, 30);
//elt 0
pts[9]= H2dPoint.createMilieu(pts[0], pts[2]);
pts[10]= H2dPoint.createMilieu(pts[2], pts[1]);
pts[11]= H2dPoint.createMilieu(pts[1], pts[0]);
//elt 1
pts[12]= H2dPoint.createMilieu(pts[1], pts[3]);
pts[13]= H2dPoint.createMilieu(pts[2], pts[3]);
//pts10
//elt 2
pts[14]= H2dPoint.createMilieu(pts[0], pts[4]);
pts[15]= H2dPoint.createMilieu(pts[4], pts[2]);
//pts 9
// elt 3
pts[16]= H2dPoint.createMilieu(pts[5], pts[4]);
pts[17]= H2dPoint.createMilieu(pts[5], pts[2]);
//pts 15
// elt 4
pts[18]= H2dPoint.createMilieu(pts[5], pts[3]);
pts[19]= H2dPoint.createMilieu(pts[3], pts[6]);
pts[20]= H2dPoint.createMilieu(pts[5], pts[6]);
// elt 5
pts[21]= H2dPoint.createMilieu(pts[5], pts[7]);
pts[22]= H2dPoint.createMilieu(pts[4], pts[7]);
//pts 16
// elt 6
//pts12
//pts19
pts[23]= H2dPoint.createMilieu(pts[6], pts[1]);
// elt 7
pts[24]= H2dPoint.createMilieu(pts[7], pts[8]);
pts[25]= H2dPoint.createMilieu(pts[8], pts[5]);
//pts 21
// elt 8
pts[26]= H2dPoint.createMilieu(pts[6], pts[8]);
//Pts 25
//pts 20
H2dElement[] elt= new H2dElement[9];
elt[0]= new H2dElement(new int[] { 0, 9, 2, 10, 1, 11 });
elt[1]= new H2dElement(new int[] { 1, 12, 3, 13, 2, 10 });
elt[2]= new H2dElement(new int[] { 0, 14, 4, 15, 2, 9 });
elt[3]= new H2dElement(new int[] { 4, 16, 5, 17, 2, 15 });
elt[4]= new H2dElement(new int[] { 5, 18, 3, 19, 6, 20 });
elt[5]= new H2dElement(new int[] { 5, 21, 7, 22, 4, 16 });
elt[6]= new H2dElement(new int[] { 1, 12, 3, 19, 6, 23 });
elt[7]= new H2dElement(new int[] { 7, 24, 8, 25, 5, 21 });
elt[8]= new H2dElement(new int[] { 6, 26, 8, 25, 5, 20 });
mail_= new H2dMaillage(pts, elt);
}
public void testTrigo() {
initMaillage();
H2dElement el= mail_.getElement(0);
assertEquals(el.getPtIndex()[0], 0);
assertEquals(el.getPtIndex()[1], 2);
assertEquals(el.getPtIndex()[2], 1);
el= mail_.getElement(1);
assertEquals(el.getPtIndex()[0], 1);
assertEquals(el.getPtIndex()[1], 3);
assertEquals(el.getPtIndex()[2], 2);
assertEquals(mail_.isElementTrigoOriente(0), -1);
assertEquals(mail_.isElementTrigoOriente(1), 1);
assertEquals(el.isSegmentInEltOrient(1, 3), 1);
assertEquals(el.isSegmentInEltOrient(3, 2), 1);
assertEquals(el.isSegmentInEltOrient(2, 1), 1);
assertEquals(el.isSegmentInEltOrient(2, 3), -1);
assertEquals(el.isSegmentInEltOrient(2, 2), 0);
}
public void testTrigoT6() {
initMaillageT6();
H2dElement el= mail_.getElement(0);
assertEquals(el.getPtIndex()[0], 0);
assertEquals(el.getPtIndex()[1], 9);
assertEquals(el.getPtIndex()[2], 2);
assertEquals(mail_.isElementTrigoOriente(0), -1);
assertEquals(mail_.isElementTrigoOriente(1), 1);
assertEquals(el.isSegmentInEltOrient(0, 9), 1);
assertEquals(el.isSegmentInEltOrient(9, 2), 1);
assertEquals(el.isSegmentInEltOrient(2, 10), 1);
assertEquals(el.isSegmentInEltOrient(10, 1), 1);
assertEquals(el.isSegmentInEltOrient(1, 11), 1);
assertEquals(el.isSegmentInEltOrient(11, 0), 1);
assertEquals(el.isSegmentInEltOrient(0, 11), -1);
assertEquals(el.isSegmentInEltOrient(0, 12), 0);
}
private void _testMinMaxCommun() {
H2dPoint p= mail_.getMaxPoint();
assertEquals(p.getX(), 10, eps_);
assertEquals(p.getY(), 20, eps_);
assertEquals(p.getZ(), 30, eps_);
p= mail_.getMinPoint();
assertEquals(p.getX(), 0, eps_);
assertEquals(p.getY(), -1, eps_);
assertEquals(p.getZ(), -15, eps_);
}
public void testMinMaxCommun() {
initMaillage();
_testMinMaxCommun();
}
public void testMinMaxCommunT6() {
initMaillageT6();
_testMinMaxCommun();
}
public void _testBordCommun() {
H2dMaillageBord bord= mail_.getPtsFrontiere();
assertEquals(bord.getBordNb(), 2);
int[] eltContains4= mail_.getEltIdxContainsPtIdx(4);
Arrays.sort(eltContains4);
assertEquals(eltContains4.length, 3);
assertTrue(Arrays.binarySearch(eltContains4, 2) >= 0);
assertTrue(Arrays.binarySearch(eltContains4, 3) >= 0);
assertTrue(Arrays.binarySearch(eltContains4, 5) >= 0);
int n= bord.getPtNbForBord(0);
assertEquals(n, 6);
assertEquals(0, bord.getPtIdxForBord(0, 0));
assertEquals(1, bord.getPtIdxForBord(0, 1));
assertEquals(6, bord.getPtIdxForBord(0, 2));
assertEquals(8, bord.getPtIdxForBord(0, 3));
assertEquals(7, bord.getPtIdxForBord(0, 4));
assertEquals(4, bord.getPtIdxForBord(0, 5));
n= bord.getPtNbForBord(1);
assertEquals(n, 3);
assertEquals(2, bord.getPtIdxForBord(1, 0));
assertEquals(5, bord.getPtIdxForBord(1, 1));
assertEquals(3, bord.getPtIdxForBord(1, 2));
}
public void testBordFast() {
initMaillage();
mail_.computeBordFast(null);
_testBordCommun();
}
public void testBordFastT6() {
initMaillageT6();
mail_.computeBordFast(null);
_testBordCommunT6();
}
public void testBord() {
initMaillage();
mail_.computeBord(null);
_testBordCommun();
}
public void testBordT6() {
initMaillageT6();
mail_.computeBord(null);
_testBordCommunT6();
}
public void _testBordCommunT6() {
H2dMaillageBord bord= mail_.getPtsFrontiere();
assertEquals(bord.getBordNb(), 2);
int[] eltContains4= mail_.getEltIdxContainsPtIdx(4);
Arrays.sort(eltContains4);
assertEquals(eltContains4.length, 3);
assertTrue(Arrays.binarySearch(eltContains4, 2) >= 0);
assertTrue(Arrays.binarySearch(eltContains4, 3) >= 0);
assertTrue(Arrays.binarySearch(eltContains4, 5) >= 0);
int n= bord.getPtNbForBord(0);
assertEquals(n, 12);
assertEquals(0, bord.getPtIdxForBord(0, 0));
assertEquals(11, bord.getPtIdxForBord(0, 1));
assertEquals(1, bord.getPtIdxForBord(0, 2));
assertEquals(23, bord.getPtIdxForBord(0, 3));
assertEquals(6, bord.getPtIdxForBord(0, 4));
assertEquals(26, bord.getPtIdxForBord(0, 5));
assertEquals(8, bord.getPtIdxForBord(0, 6));
assertEquals(24, bord.getPtIdxForBord(0, 7));
assertEquals(7, bord.getPtIdxForBord(0, 8));
assertEquals(22, bord.getPtIdxForBord(0, 9));
assertEquals(4, bord.getPtIdxForBord(0, 10));
assertEquals(14, bord.getPtIdxForBord(0, 11));
n= bord.getPtNbForBord(1);
assertEquals(n, 6);
assertEquals(2, bord.getPtIdxForBord(1, 0));
assertEquals(17, bord.getPtIdxForBord(1, 1));
assertEquals(5, bord.getPtIdxForBord(1, 2));
assertEquals(18, bord.getPtIdxForBord(1, 3));
assertEquals(3, bord.getPtIdxForBord(1, 4));
assertEquals(13, bord.getPtIdxForBord(1, 5));
}
}
|