aboutsummaryrefslogtreecommitdiff
path: root/gfsm/gfsm/src/libgfsm/tests/labcount.perl
diff options
context:
space:
mode:
Diffstat (limited to 'gfsm/gfsm/src/libgfsm/tests/labcount.perl')
-rwxr-xr-xgfsm/gfsm/src/libgfsm/tests/labcount.perl28
1 files changed, 28 insertions, 0 deletions
diff --git a/gfsm/gfsm/src/libgfsm/tests/labcount.perl b/gfsm/gfsm/src/libgfsm/tests/labcount.perl
new file mode 100755
index 0000000..4086797
--- /dev/null
+++ b/gfsm/gfsm/src/libgfsm/tests/labcount.perl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl -w
+
+use Gfsm;
+
+if (!@ARGV) {
+ print STDERR "Usage: $0 LABFILE [DATA_FILE(s)...]\n";
+ exit 1;
+}
+
+$labfile = shift;
+$labs = Gfsm::Alphabet->new();
+$labs->load($labfile) or die("$0: load failed for labels file '$labfile': $!");
+$sym2id = $labs->asHash;
+
+##-- read data
+%labf = qw();
+$ftotal = 0;
+while (defined($line=<>)) {
+ chomp($line);
+ @labs = grep {defined($_)} @$sym2id{split(//,$line)};
+ $ftotal += scalar(@labs);
+ foreach (@labs) { ++$labf{$_}; }
+}
+
+##-- write data vector
+#print map { pack('d', (defined($_) ? $_ : 0)/$ftotal) } @labf;
+
+print map {pack('Sd',$_,$labf{$_}/$ftotal)} sort(keys(%labf));