The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 5;
use_ok("Text::Ngram");

my $text = "ABCdefg1235678hijklmnop";
my $hash = Text::Ngram::ngram_counts( { lowercase => 1 }, $text, 3);
is_deeply($hash, {
          'abc' => 1,
          'bcd' => 1,
          'cde' => 1,
          'def' => 1,
          'efg' => 1,
          'fg ' => 1,
          ' hi' => 1,
          'hij' => 1,
          'ijk' => 1,
          'jkl' => 1,
          'klm' => 1,
          'lmn' => 1,
          'mno' => 1,
          'nop' => 1,
         }, "Simple test finds all ngrams");

$text = "ABCdefg1235678hijklmnop";
$hash = Text::Ngram::ngram_counts( { lowercase => 0 }, $text, 3);
is_deeply($hash, {
          #'ABC' => 1,
          #'BCd' => 1,
          ' de' => 1,
          'def' => 1,
          'efg' => 1,
          'fg ' => 1,
          ' hi' => 1,
          'hij' => 1,
          'ijk' => 1,
          'jkl' => 1,
          'klm' => 1,
          'lmn' => 1,
          'mno' => 1,
          'nop' => 1,
         }, "Simple test with lowercase flag unset ignores uppercase letters");

$text = "ABCdefg1235678hijklmnop";
$hash = Text::Ngram::ngram_counts( { lowercase => 1 }, $text, 3);
is_deeply($hash, {
          'abc' => 1,
          'bcd' => 1,
          'cde' => 1,
          'def' => 1,
          'efg' => 1,
          'fg ' => 1,
          ' hi' => 1,
          'hij' => 1,
          'ijk' => 1,
          'jkl' => 1,
          'klm' => 1,
          'lmn' => 1,
          'mno' => 1,
          'nop' => 1,
         }, "Simple test lowercases letters");


$text = "Hello, world";
$hash = Text::Ngram::ngram_counts($text, 5);


is_deeply($hash, {
    'hello' => 1,
    'ello ' => 1,
    ' worl' => 1,
    'world' => 1,
  }, "zz");