Source: http://cedric.cnam.fr/~taktaks/GLG101/teststructurel.pdf