@Test
    public void testSortByAll() {
        Material matBase1 = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md");
        Material matBase2 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        
        Texture texBase = createTexture("BASE");
        texBase.getImage().setId(1);
        Texture tex1 = createTexture("1");
        tex1.getImage().setId(2);
        Texture tex2 = createTexture("2");
        tex2.getImage().setId(3);
        
        matBase1.setName("BASE");
        matBase1.selectTechnique(TechniqueDef.DEFAULT_TECHNIQUE_NAME, renderManager);
        matBase1.setBoolean("UseVertexColor", true);
        matBase1.setTexture("DiffuseMap", texBase);
        
        Material mat1100 = matBase1.clone();
        mat1100.setName("1100");
        mat1100.selectTechnique("PreShadow", renderManager);
        
        Material mat1101 = matBase1.clone();
        mat1101.setName("1101");
        mat1101.selectTechnique("PreShadow", renderManager);
        mat1101.setTexture("DiffuseMap", tex1);
        
        Material mat1102 = matBase1.clone();
        mat1102.setName("1102");
        mat1102.selectTechnique("PreShadow", renderManager);
        mat1102.setTexture("DiffuseMap", tex2);
        
        Material mat1110 = matBase1.clone();
        mat1110.setName("1110");
        mat1110.selectTechnique("PreShadow", renderManager);
        mat1110.setFloat("AlphaDiscardThreshold", 2f);
        
        Material mat1120 = matBase1.clone();
        mat1120.setName("1120");
        mat1120.selectTechnique("PreShadow", renderManager);
        mat1120.setBoolean("UseInstancing", true);
        
        Material mat1121 = matBase1.clone();
        mat1121.setName("1121");
        mat1121.selectTechnique("PreShadow", renderManager);
        mat1121.setBoolean("UseInstancing", true);
        mat1121.setTexture("DiffuseMap", tex1);
        
        Material mat1122 = matBase1.clone();
        mat1122.setName("1122");
        mat1122.selectTechnique("PreShadow", renderManager);
        mat1122.setBoolean("UseInstancing", true);
        mat1122.setTexture("DiffuseMap", tex2);
        
        Material mat1140 = matBase1.clone();
        mat1140.setName("1140");
        mat1140.selectTechnique("PreShadow", renderManager);
        mat1140.setFloat("AlphaDiscardThreshold", 2f);
        mat1140.setBoolean("UseInstancing", true);
        
        Material mat1200 = matBase1.clone();
        mat1200.setName("1200");
        mat1200.selectTechnique("PostShadow", renderManager);
        
        Material mat1210 = matBase1.clone();
        mat1210.setName("1210");
        mat1210.selectTechnique("PostShadow", renderManager);
        mat1210.setFloat("AlphaDiscardThreshold", 2f);
        
        Material mat1220 = matBase1.clone();
        mat1220.setName("1220");
        mat1220.selectTechnique("PostShadow", renderManager);
        mat1220.setBoolean("UseInstancing", true);
        
        Material mat2000 = matBase2.clone();
        mat2000.setName("2000");
        
        testSort(mat1110, mat1100, mat1101, mat1102, 
                 mat1140, mat1120, mat1121, mat1122, 
                 mat1220, mat1210, mat1200, mat2000);
    }
Given a correctly sorted list of materials, check if the 
opaque comparator can sort a reversed list of them.

Each material will be cloned so that none of them will be equal to each other
in reference, forcing the comparator to compare the material sort ID.

E.g. for a list of materials A, B, C, the following list will be generated:
<pre>C, B, A, C, B, A, C, B, A</pre>, it should result in
<pre>A, A, A, B, B, B, C, C, C</pre>.

@param materials The pre-sorted list of materials to check sorting for.
jme3-core/src/test/java/com/jme3/renderer/OpaqueComparatorTest.java