Hi,

I have created a perl script for test map generation. I have also performed some memory consumption and cpu time analysis and shall report my results later. The script for creation of the test maps could help you too, so I post it now. The properties of the generated map can be set in the configuration part of the script.

Dimitry
#=================== Configuration ===================

# $max_node_number - approximate number of nodes to generate
#our $max_node_number = 200000;
our $max_node_number = 2000;

# $max_level - number of node levels, root node has level 0
our $max_level = 7;

# $max_level - number of child nodes for each node
our $max_number = 7;

# $attributeNumber - number of attributes added to each node
our $attributeNumber = 2;

# $linkNumber - number of links added to each node
our $linkNumber = 2;

#=================== Script ==========================
use strict;
our $counter = 0;
our $rest = 1;

sub attributes($)
{
 my $level = shift;
 for(my $i = 1; $i <= $attributeNumber; $i++)
 {
        print " " x ($level * 4);
        print "<attribute NAME=\"$i\" VALUE=\"attribute $i $i $i\"/>\n";
 }
}

sub links($)
{
  if(! $linkNumber)
   {
        return;
   }
  my $level = shift;
  for(my $i = 1; $i <= $attributeNumber; $i++)
  {
    my $target = int(rand($max_node_number)) + 1;
    if($target == $counter)
    {
        $target--;
    }
    print " " x ($level * 4);
    print "<arrowlink DESTINATION=\"Freemind_Link_$target\" 
ENDARROW=\"Default\" ENDINCLINATION=\"49;0;\" STARTARROW=\"None\" 
STARTINCLINATION=\"49;0;\"/>\n";
  }
}
sub nodes($)
{
  if($counter + $rest > $max_node_number)
  {
        return;
  }
  my $level = shift;
  if ($level > $max_level)
  {
        return;
  }
 $rest += $max_number;
 for(my $i = 1; $i <= $max_number; $i++)
 {
  $counter++;
  $rest--;

  my $folded;
   if($counter + $rest > $max_node_number) {
     $folded = '';
   }
   else{
     $folded='FOLDED = "true"';
   }

  print " " x ($level * 4);
  print "<node ID=\"Freemind_Link_$counter\" TEXT=\"testnode $level $i 
$counter\" $folded>\n";

  attributes($level + 1);
  links($level + 1);
  nodes($level + 1);
  print " " x ($level * 4);
  print "</node>\n";
 }
}


print <<ENDOFMAP;
<map version="0.8.0">
<!-- To view this file, download free mind mapping software FreeMind from 
http://freemind.sourceforge.net -->
<node TEXT="Neue Mindmap">
ENDOFMAP
nodes(1);
print <<ENDOFMAP2;
</node>
</map>
ENDOFMAP2


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Freemind-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freemind-developer

Reply via email to