The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Chemistry::File::SMILES;
use Test::More;
use List::Util qw(sum);

#plan tests => 8;
plan 'no_plan';

my $mol;
my $total_bo;
my $s_out;
my $s_in = 'c1ccccc1C';
my $bo_total;

# kekulize
$mol = Chemistry::Mol->parse($s_in, format => 'smiles', kekulize => 0);
$bo_total = sum( map {$_->order} $mol->bonds );
is( $bo_total,      7,      'kekulize => 0' );

$mol = Chemistry::Mol->parse($s_in, format => 'smiles', kekulize => 1);
$bo_total = sum( map {$_->order} $mol->bonds );
is( $bo_total,      10,      'kekulize => 1' );

# aromatic
$s_out = $mol->print(format => 'smiles', aromatic => 0);
is( $s_out,     'C1=CC=CC=C1C',    'aromatic => 0');

$s_out = $mol->print(format => 'smiles', aromatic => 1);
is( $s_out,     $s_in,    'aromatic => 1');

# unique
$s_out = $mol->print(format => 'smiles', unique => 1);
is( $s_out,     'Cc1ccccc1',    'unique => 1');

# auto_number
$s_out = $mol->print(format => 'smiles', aromatic => 1, auto_number => 1);
is( $s_out, '[cH:1]1[cH:2][cH:3][cH:4][cH:5][c:6]1[CH3:7]',  'auto_number => 1');

# number
$mol->atoms(7)->name(345);
$s_out = $mol->print(format => 'smiles', aromatic => 1, number => 1);
is( $s_out, 'c1ccccc1[CH3:345]',  'number => 1');

# read numbers
$s_in = 'CC(=[O:1])[O:2]CC';
$mol = Chemistry::Mol->parse($s_in, format => 'smiles');
is( $mol->atoms(3)->name, 1, 'atom name(1)' );
is( $mol->atoms(4)->name, 2, 'atom name(2)' );