<commit_before>#! /usr/bin/perl
################################################################################
## taskwarrior - a command line task list manager.
##
## Copyright 2006 - 2011, <NAME>, <NAME>.
## All rights reserved.
##
## This program is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free Software
## Foundation; either version 2 of the License, or (at your option) any later
## version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
## FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
## details.
##
## You should have received a copy of the GNU General Public License along with
## this program; if not, write to the
##
##     Free Software Foundation, Inc.,
##     51 Franklin Street, Fifth Floor,
##     Boston, MA
##     02110-1301
##     USA
##
################################################################################

use strict;
use warnings;
use Test::More tests => 20;

# Create the rc file.
if (open my $fh, '>', 'export.rc')
{
  print $fh "data.location=.\n",
            "verbose=no\n";
  close $fh;
  ok (-r 'export.rc', 'Created export.rc');
}

# Add two tasks, export, examine result.
qx{../src/task rc:export.rc add priority:H project:A one};
qx{../src/task rc:export.rc add +tag1 +tag2 two};
diag (qx{env PATH=/usr/bin:../src ../scripts/add-ons/export-yaml.pl rc:export.rc > ./export.txt});

my @lines;
if (open my $fh, '<', './export.txt')
{
  @lines = <$fh>;
  close $fh;
}

like ($lines[0],  qr/^\%YAML 1\.1$/,             'export YAML line 1');
like ($lines[1],  qr/^---$/,                     'export YAML line 2');
like ($lines[2],  qr/^  task:$/,                 'export YAML line 3');
like ($lines[3],  qr/^    description: one$/,    'export YAML line 4');
like ($lines[4],  qr/^    entry: \d{8}T\d{6}Z$/, 'export YAML line 5');
like ($lines[5],  qr/^    id: \d+$/,             'export YAML line 6');
like ($lines[6],  qr/^    priority: H$/,         'export YAML line 7');
like ($lines[7],  qr/^    project: A$/,          'export YAML line 8');
like ($lines[8],  qr/^    status: pending$/,     'export YAML line 9');
like ($lines[9],  qr/^    uuid: .+$/,            'export YAML line 10');
like ($lines[10], qr/^  task:$/,                 'export YAML line 11');
like ($lines[11], qr/^    description: two$/,    'export YAML line 12');
like ($lines[12], qr/^    entry: \d{8}T\d{6}Z$/, 'export YAML line 13');<commit_msg>Unit Tests<commit_after>#! /usr/bin/perl
################################################################################
## taskwarrior - a command line task list manager.
##
## Copyright 2006 - 2011, <NAME>, <NAME>.
## All rights reserved.
##
## This program is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free Software
## Foundation; either version 2 of the License, or (at your option) any later
## version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
## FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
## details.
##
## You should have received a copy of the GNU General Public License along with
## this program; if not, write to the
##
##     Free Software Foundation, Inc.,
##     51 Franklin Street, Fifth Floor,
##     Boston, MA
##     02110-1301
##     USA
##
################################################################################

use strict;
use warnings;
use Test::More tests => 20;

# Create the rc file.
if (open my $fh, '>', 'export.rc')
{
  print $fh "data.location=.\n",
            "verbose=no\n";
  close $fh;
  ok (-r 'export.rc', 'Created export.rc');
}

# Add two tasks, export, examine result.
qx{../src/task rc:export.rc add priority:H project:A one};
qx{../src/task rc:export.rc add +tag1 +tag2 two};
qx{env PATH=../src:$ENV{PATH} ../scripts/add-ons/export-yaml.pl rc:export.rc > ./export.txt};

my @lines;
if (open my $fh, '<', './export.txt')
{
  @lines = <$fh>;
  close $fh;
}

like ($lines[0],  qr/^\%YAML 1\.1$/,             'export YAML line 1');
like ($lines[1],  qr/^---$/,                     'export YAML line 2');
like ($lines[2],  qr/^  task:$/,                 'export YAML line 3');
like ($lines[3],  qr/^    description: one$/,    'export YAML line 4');
like ($lines[4],  qr/^    entry: \d{8}T\d{6}Z$/, 'export YAML line 5');
like ($lines[5],  qr/^    id: \d+$/,             'export YAML line 6');
like ($lines[6],  qr/^    priority: H$/,         'export YAML line 7');
like ($lines[7],  qr/^    project: A$/,          'export YAML line 8');
like ($lines[8],  qr/^    status: pending$/,     'export YAML line 9');
like ($lines[9],  qr/^    uuid: .+$/,            'export YAML line 10');
like ($lines[10], qr/^  task:$/,                 'export YAML line 11');
like ($lines[11], qr/^    description: two$/,    'export YAML line 12');
like ($lines[12], qr/^    entry: \d{8}T\d{6}Z$/, 'export YAML line 13');
{'fraction_non_alphanumeric': 0.22692159134801082, 'fraction_numerical': 0.02433371958285052, 'mean_word_length': 3.074744295830055, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1259976', 'n_tokens_mistral': 1775, 'n_tokens_neox': 1614, 'n_words': 607}