## Average order of group elements: a demo of test-driven development in GAP

By Olexandr Konovalov, Research Fellow in the Centre for Interdisciplinary Research in Computational Algebra, University of St Andrews (reproduced from the original post here)

*This blog post is based on an improvised demo that I gave at the Newcastle University on May 21st, 2015 during a short visit supported by the CoDiMa project.*

Let’s consider the following exercise: for a finite group *G*, calculate the average order of its element (that is, the sum of orders of its elements divided by the order of the group). We begin with a very straightforward approach, iterating over all elements of the group in question:

```
gap> S:=SymmetricGroup(10);
Sym( [ 1 .. 10 ] )
gap> sum:=0;
0
gap> for g in S do
> sum := sum + Order(g);
> od;
gap> sum/Size(S);
39020911/3628800
```

Now assume that we would like to save this fragment of the GAP code and later repeat this calculation for some other groups. (more…)