diff --git a/src/interface/render_svg.hpp b/src/interface/render_svg.hpp
index 9f3b43e99f46fe8dc9408811e4bc85b0fdb53f2a..08ffc565de641050ef14aa6a72df679f6c83b533 100644
--- a/src/interface/render_svg.hpp
+++ b/src/interface/render_svg.hpp
@@ -165,6 +165,7 @@ void Svg::print(){
     if (_buffer.str().size()>BUFFER_SIZE){
         _svg_file.write(_buffer.str().c_str(),  _buffer.str().size());
         _buffer.flush();
+	_buffer.str("");
     }
 }
 
diff --git a/tests/interface/test_svg.cpp b/tests/interface/test_svg.cpp
index 7e3c67ea9f5e61812d9e521258596b66de2a7c33..41f13557d8e495bf0fcce7a31c4b53d696bc3db3 100644
--- a/tests/interface/test_svg.cpp
+++ b/tests/interface/test_svg.cpp
@@ -19,6 +19,192 @@ int main()
 
     s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
     s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+ s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+  s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+ 
+
+    s.draw_state(100, 750, 1,NULL, 0xff,0xcc,33);
+    s.draw_state(400, 750, 2,NULL, 0xff,0xcc,33);
+    s.draw_state(70, 300, 3,NULL, 0xff,0xcc,33);
+
+    s.draw_arrow(100,700,LEVEL*1,LEVEL*3);
+    s.draw_arrow(200,400,LEVEL*2,LEVEL*2);
+
+
     s.end();
 
     return 0;