@Test
    public void testLotsOfStrategies() {
        //Lots of strategies
        TraversalStrategies s = new DefaultTraversalStrategies();
        s = s.addStrategies(b, l, m, n, o, a);
        assertTrue(s.toList().indexOf(a) < s.toList().indexOf(b));
        s = s.clone();
        assertTrue(s.toList().indexOf(a) < s.toList().indexOf(b));

        // sort and then add more
        s = new DefaultTraversalStrategies();
        s.addStrategies(b, a, c);
        assertEquals(3, s.toList().size());
        assertEquals(a, s.toList().get(0));
        assertEquals(b, s.toList().get(1));
        assertEquals(c, s.toList().get(2));
        s.addStrategies(d);
        s = s.clone();
        assertEquals(4, s.toList().size());
        assertEquals(a, s.toList().get(0));
        assertEquals(b, s.toList().get(1));
        assertEquals(d, s.toList().get(2));
        assertEquals(c, s.toList().get(3));
        s.addStrategies(e);
        assertEquals(5, s.toList().size());
        assertEquals(a, s.toList().get(0));
        assertEquals(b, s.toList().get(1));
        assertEquals(d, s.toList().get(2));
        assertEquals(c, s.toList().get(3));
        assertEquals(e, s.toList().get(4));
    }
@author Marko A. Rodriguez (http://markorodriguez.com)
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversalStrategiesTest.java