diff --git a/lib/modules/Graphics.pmod/Graph.pmod/test.pike b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
index e0f568f73ce56c6a8b049134f81f8cb766cba145..6d6334a5aa32fe9cd44bd52f19ef450e72900d0f 100755
--- a/lib/modules/Graphics.pmod/Graph.pmod/test.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
@@ -4,9 +4,31 @@
 
 import ".";
 
-void main()
+constant data = ([ "data":
+		   ({ ({1.0}), ({2.0}), ({1.0}), ({2.0}) }),
+                ]);
+
+void main(int num, array(string) args)
 {
-  Image.Image image=
-    Graphics.Graph.bars((["data":({({1.0}),({2.0}),({1.0}),({2.0})})]));
-  Stdio.write_file("graph.gif", Image.GIF.encode(image));
+  int w = has_value(args, "-w")||has_value(args, "--write");
+
+  Image.Image image;
+
+  image = Graphics.Graph.bars(data);
+  if(w) Stdio.write_file("bars.gif", Image.GIF.encode(image));
+
+  image = Graphics.Graph.pie(data);
+  if(w) Stdio.write_file("pie.gif", Image.GIF.encode(image));
+
+  image = Graphics.Graph.sumbars(data);
+  if(w) Stdio.write_file("sumbars.gif", Image.GIF.encode(image));
+
+  image = Graphics.Graph.line(data);
+  if(w) Stdio.write_file("line.gif", Image.GIF.encode(image));
+
+  image = Graphics.Graph.norm(data);
+  if(w) Stdio.write_file("norm.gif", Image.GIF.encode(image));
+
+  image = Graphics.Graph.graph(data);
+  if(w) Stdio.write_file("graph.gif", Image.GIF.encode(image));
 }