my
$fold
= Text::ANSI::Fold->new;
sub
folded {
my
$obj
=
shift
;
my
(
$folded
,
$rest
) =
$obj
->fold(
@_
);
$folded
;
}
$_
=
"12345678901234567890123456789012345678901234567890"
;
is(folded(
$fold
,
$_
,
width
=> 10),
"1234567890"
,
"ASCII"
);
is(folded(
$fold
,
$_
,
width
=>
length
),
$_
,
"ASCII: just"
);
is(folded(
$fold
,
$_
,
width
=>
length
(
$_
) * 2),
$_
,
"ASCII: long"
);
$_
=
"123456789012345678901234567890"
;
is(folded(
$fold
,
$_
,
width
=> 10),
"12345"
,
"WIDE"
);
is(folded(
$fold
,
$_
,
width
=>
length
(
$_
) * 2),
$_
,
"WIDE: just"
);
is(folded(
$fold
,
$_
,
width
=>
length
(
$_
) * 4),
$_
,
"WIDE: long"
);
is(folded(
$fold
,
$_
,
width
=> 9),
"1234"
,
"WIDE: one short"
);
is(folded(
$fold
,
$_
,
width
=> 11),
"12345"
,
"WIDE: one over"
);
$_
=
"aaa bbb cccdddeeefff"
;
is(folded(
$fold
,
$_
,
width
=> 5),
"aaa b"
,
"boundary: none"
);
is(folded(
$fold
,
$_
,
width
=> 6),
"aaa bb"
,
"boundary: none"
);
is(folded(
$fold
,
$_
,
width
=> 7),
"aaa bbb"
,
"boundary: none"
);
$fold
->configure(
boundary
=>
'word'
);
is(folded(
$fold
,
$_
,
width
=> 5),
"aaa "
,
"boundary: word"
);
is(folded(
$fold
,
$_
,
width
=> 6),
"aaa "
,
"boundary: word"
);
is(folded(
$fold
,
$_
,
width
=> 7),
"aaa bbb"
,
"boundary: word"
);
is(folded(
$fold
,
$_
,
width
=> 9),
"aaa bbb c"
,
"boundary: word"
);
$fold
= Text::ANSI::Fold->new(
width
=> 3);
$_
=
"●●●●●"
;
is(folded(
$fold
,
$_
),
"●●●"
,
"Ambiguous"
);
is(folded(
$fold
,
$_
,
ambiguous
=>
'wide'
),
"●"
,
"Ambiguous: WIDE"
);
$fold
= Text::ANSI::Fold->new(
width
=> 3,
ambiguous
=>
'wide'
,
);
$_
=
"●●●●●"
;
is(folded(
$fold
,
$_
),
"●"
,
"Ambiguous: WIDE"
);
done_testing;