	0 1 2 3 4 5 6 7
0       - a - d i e - h             

1       a - b - - j - - 

2       - b - c - f k g 

3       d - c - - - - l

4       i - - - - m - p 

5       e j f - m - n - 

6       - - k - - n - o 

7       h - g l p - o - 

Beim Bilden der Matrix kann festgestellt werden:
1. fehlerhafte Kanten (Kanten auf der Diagonalen)
2. doppelte Kanten (wenn eine Kante eingetragen wird,
	doch an dieser Stelle schon ein andere Kante existiert)
3. fehlende Punkte (Indezes sind auer Range)

Close-Test:
for(k = 0;k < #Kanten;k++)
{
	if(closetest(k) != 0)
		return notclose;
}

//
// Ist Kante k close?
//
// Das ist genau dann der Fall, wenn genau 2 Segmente
// mit Kante k existieren, die close sind.
//
// Sind weniger als zwei Segmente vorhanden ist k nicht close.
// Sind mehr vorhanden, liegt ein anderer Fehler vor.
//
int	closetest(int k)
{
	int	i,f,kf,c;

	c = 0;
	f = kante[k][0];
	for(i = 0;i < nknodes;i++)
	{
		kf = matrix[f * nknodes + i];
		if(kf >= 0)
		{
			if(existSegment(k,kf)) c++;
		}
	}

	return c - 2;
}

//
// Existiert ein Segment mit den Kanten k und kf?
//
int	existsSegment(int k,int kf)
{
	int	ps = kante[k][0];
	int	f = kante[kf][1];
	int	i,p;

	for(i = 0;i < nknodes;i++)
	{
		if((p = matrix[f * nknodes + i]) >= 0)
		{

			if(kante[p][1] == ps)
				return 1;
		}
	}

	return 0;
}



