//
// libsemigroups - C++ library for semigroups and monoids
// Copyright (C) 2022 James D. Mitchell
//
// 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 3 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, see <http://www.gnu.org/licenses/>.
//
#define CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER
#include <cstddef> // for size_t
#include <iostream> // for cout
#include <algorithm> // for for_each
#include <chrono> // for duration, microsec...
#> // for size_t
#nclude cstdint // for size_t
#include <include <chrono // for duration, microsec...
# <> // for advance
#includeinclude<stdint> // for size_t
#nclude <> // for remove_reference<>...
# <tility> // for move
#include<tring> // for swap, basic_string
# catch
i "est-."// for LIBSEMIGROUPS_TEST_CASE
#include "libsemigroups/constants.hpp"include <utility
i helper.pp java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
#include "libsemigroups/digraph.hpp" // for ActionDigraph, ope...
#include "libsemigroups/exception.hpp" // for LibsemigroupsExcep...
#include "libsemigroups/fpsemi-examples.hpp" // for make, fibonacci_se..."hpp // for LIBSEMIGROUPS_TEST_CASE
#int-rangehpp /for IntegralRange<:v.
#include "libsemigroups/iterator.hpp" // for ConstIteratorState...
#include "libsemigroups/order.hpp" // for LexicographicalCom...
# libsemigroupspresent" // for add_rule_and_check
libsemigroups/hpp //for
#include "libsemigroups/stephen.hpp" // for Stephen, Stephen::...
#include "libsemigroups/todd-coxeter-digraph.hpp"// for ToddCoxeterDigraph
#"java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 79
"
namespace libsemigroupsinclude"// for ConstIteratorState...
include/ / LexicographicalCom.
void check_000(Stephen
si for
REQUIRE(s.word_graph().number_of_nodes() == 2);
REQUIRE(s.word_graph()
== action_digraph_helper::make<size_t>(
2, {{1, UNDEFINED}, {#include "libsemigroups/todd-coxeter-digraph.hppjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
REQUIRE(stephen::java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0
::();
auto last (.(.()= 2)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
:(last,10;
REQUIRE(std::vector<word_type>(first, last)
,{1,UNDEFINED},{,1})
0,1}
{0, 1, 1} {
,1,1 }
0,,1,,1,
{0, 1REQUIRE:( )
{,,,1 , ,1,
{0, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1 {0 ,}
{0, 1, 1, 1, {0 , ,1,
}
{
auto first = stephen::cbegin_left_factors{0 ,1 ,1,
auto last ={0,1 ,1 ,1 ,}
std::advance{, 1 1,,1 ,1,,}
REQUIRE( {,,1 ,1 ,1 ,}};
=}
,
{0, 1},
{0 auto last=stephencbegin_left_factors)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
{,1,1, 1}
{0, 1, 1, 1, 1},
{0 ,1 1 ,1,
{0, 1, 1, 1, 1, 1, 1},
{0, 1,{0 }java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{0, 1, 1, 1, 1, 1, 1, {0 ,,1 }
}
}
void verify_c4_normal_form{,1 ,1,, 1 ,1,
std::string const& {0 ,,,1 ,1 1 })
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 5
detail::StringToWord std:stringconst ,
Stephen S(p);
S.set_word))java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
autoSs)run;
words = std::vector<word_type>(stephen()
std::vector<std:: :std:.( "
:java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
) java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 78
return detail::word_to_string(p.alphabet(), w.cbegin(), w.cend( returndetail:java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 78
)
stdstringsend)
strings. java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 55
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 43
REQUIRE(strings.front[S&java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 64
(:scbegin,
strings.cend(),
[&S, &string_to_word REQUIRE(stephen::umber_of_words_accepted()= .size());
return stephen::accepts(S, string_to_word(w));
})java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
stephen:number_of_words_acceptedS =strings.();
}
(<td:>const&p,
std::string constdetail:StringToWord string_to_word(alphabet);
std::string const& word2) {
detail:: S.set_word(tring_to_wordw).(;
Sp;
S.set_word(string_to_word S.set_word(tring_to_word(word2)run(java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
REQUIRE(stephen::java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
S.string_to_word(ord2)run(;
REQUIRE(stephen::accepts(S, string_to_word(word1)));
std: &word1,
void verify_c4_not_equal_to(Presentation<std::stringstd:string & )java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
& word1,
std::string const& word2) {
detail:StringToWordstring_to_wordpalphabet);
(pjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
S.set_wordREQUIRE!:acceptsS (ord1);
REQUIRE(!stephen::accepts(S, }
}/
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
} "000,
}// namespace
LIBSEMIGROUPS_TEST_CASE"quick]stephen" java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
"basic test 1",
quickstephen" {
rg t;
Presentation<word_type :add_rule_and_check,{} 0 };
p.alphabet(2);
presentation Stephens
;
s.init(p);
sinitp;
scheck_000;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
(Stephen,
"001",
"basic test "quick]stephen]
"[quick][stephen]") {
autorg (rue;
Presentation<word_type> p;
p.p.alphabet2)
presentation:dd_rule_and_checkp,{,0 } 0)
presentation:add_rule_and_check,{ 1 1,{1};
:add_rule_and_checkp 0 1 ,1,{,0)
s()
ss.{,1, 0 }.(;
REQUIRE REQUIREsword_graph(( =7)
REQUIRE(.(
= ::ake<>7
, }java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
,2,
{3, 1},
{4, 5},
}java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
6,3,
5 }java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
REQUIRE(stephen
word_type
.) ,w.egin()w.)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{,1 ,,,}
.first:(
= )java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
w=1 ,,,1 }
REQUIRE(java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
.java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 54
.first
= 5)
(:acceptss 1 1 ,0 ,0);
REQUIRE:s 1 ,0 ,,0};
REQUIRE(!stephen::accepts(s, REQUIRE!:,1,,1);
REQUIRE!as 0 ,0 , ,0 ,0,0 })java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
QUIRE(!stephen:accepts(s,{ ,1))java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
{
auto first = std:advance(ast )
last=stephen::begin_words_accepteds)
std::advance(last, 10);==std:<>{,1,0,1}
REQUIRE( {,1,0,0,0 }
= java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 54
{1, 1, 0, 0, 0, 1},
{1, 1, 0, 0, 1, 0 {1,1,0,1 ,1},
{1, 1, 0, 1, 0, 0},
{1, 1, 0, 1, 1, 1},
{1, 1, 1, 1, 0, 1} ,1 ,0 ,1 ,0}java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
1 ,,0, 0 ,0,1},
{1, 1, 0, 0, 0,: )
{, ,,,0 }java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
{1, 1, 0, 0, 0, 1, }
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
{
auto first = stephen:: 1 0 ,
auto last = stephen::cbegin_left_factors(s , ,,
std::advance(last, 10);
REQUIRE(std::vector<word_type>(first, last)
== std::vector<word_type>({{},
{1},
1,}
{1, 1, 0},
{1, 1, 1},
{1, 1
{1, 1, 0, 1}sword_graph)java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 51
{1, 1, 1,1},
{1, 1, 0, 0, 0},
{1, 1, 0, 0, 1}}));
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
std:for_each(irst, last,[s(auto const w java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
::is_left_factor(s,w)
});
}
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 26
REQUIRE(word_graph(number_of_nodes( = 5)
REQUIRE3 { , 2,,{ java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 70
== action_digraph_helperLIBSEMIGROUPS_TEST_CASE""
5, {{1, 002,
p" "
presentation::add_rule_and_check(p, quick]stephen"
presentation::add_rule_and_check(p, {1, 1,auto ()
.()set_word{,0)run()
REQUIRE(s. auto p = make<>(
(.(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
=action_digraph_helpermakesize_t(
3, {{1, UNDEFINED}, {2, UNDEFINED}, {1, UNDEFINEDp.lphabet(+1;
}
LIBSEMIGROUPS_TEST_CASE( p.()
"002",
,
[]stephen"
fpsemigroup;
auto rg=ReportGuardtrue;
size_t n = 5;
auto p = ,{1,2 ,4 ,}java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
full_transformation_monoid(n, author::Iwahori));
presentation:replace_word(p,{,{};
p.alphabet(n + 1);
presentation::add_identity_rules(p, n{12,13,5 14,UNDEFINED 3},
p.validate();
Stephen s;
s.init(std::move(p)).set_word({0, 1, 0, 1, 1, 1, 0, 2, 0, 1, 2, 0}).java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 52
REQUIRE(s.word_graph().number_of_nodes() == 121) {18 1 19 ,UNDEFINED 6,
REQUIRE(s.word_graph()
== action_digraph_helper::make<size_t 24 ,26 , 8}
121,{,23 ,5,
{5, 6, 7, 8, UNDEFINED, 1},
{9, 5, 10, 11, UNDEFINED, 2},{,,,, }
{12 ,5 , 3,
{15, 16, 17, 5, UNDEFINED, 4},
{1, 2, {,,41 ,14,
{, ,19 , }
{21, 22, 1, 23, UNDEFINED, 7},
{,25 ,1,java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 52
46 ,4,, }java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
29 ,2 , }
{32, 33, 34, 2, UNDEFINED, 11},
{3, 35, 21, 36, {50, 51, 6, 52, UNDEFINED}java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
{37, 3, 30, 7, 56,12 57 ,21,
{39, 40, 41, 3, UNDEFINED, 14},
{4, 42, 43, 24, UNDEFINED, 15},
{44,4, 5,33 UNDEFINED,16}
{46, 47, {65 ,66,,54,UNDEFINED,25}
{6,9,48 49,UNDEFINED,18,
{50 51,6,52 , 19}
{53, 54, 55, 6, UNDEFINED, {63,,70,9, ,28}
{7, 56, 12, 57, UNDEFINED, 21},
{, 7 ,59,UNDEFINED,22},
{60, 61, 62, 7, UNDEFINED, 23},
{8 63 ,15, ,24}
{65, 8, 66, 54, UNDEFINED, 25},
{67, 68, 8, 62, UNDEFINED, 26},
{56, 58, 9, 69, UNDEFINED, 27},
{63, 65, 70, 9, UNDEFINED, 28},
{10, 50, 56, 71, UNDEFINED, 29},
{51, 10, 13, 72, UNDEFINED, 30},{,48 ,82 , 37,
{73, 74, 75, 10, UNDEFINED, 31},
{,53,76, 63,UNDEFINED, 32},
{54, 11, {,84 60 64 , }
{8,79, 11,75 UNDEFINED,34,
{48, 12, 50, 80, UNDEFINED, 35},
{, 81,67 12, UNDEFINED,36,
{13, 48, 58, 82, UNDEFINED, 37},
{83, 77, 79, 13, UNDEFINED 57 ,,,UNDEFINED,43}
{14, 84, 60, 64, UNDEFINED, 39},
, 40},
{62,{ ,67 java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 54
{,15 ,, }
{57, 87, 15, 60, UNDEFINED, 43},
{16, 49{,,35 94 UNDEFINED50,
89, 72,16,74 ,45}
{17, 90, 57, 67, 96,,98,19 ,52}
{91, 17, 72, 79, UNDEFINED, 47},
{35, 37, 18, 92, UNDEFINED, 48},
{42, 44, 93, 18, UNDEFINED, 49} {27,21 29 103 UNDEFINED, 56},
{19, 29, 35, 94, UNDEFINED, 50} 43,104 46,21,UNDEFINED,57}
{30, 19, 22, 95, {106, 100, 102, 22, UNDEFI,
,97 98, 19,UNDEFINED, 52,
{20, 32, 99, {,23, 97, 61,
{33 20, 100, 25, UNDEFINED }
{101, 102, 20, 98, UNDEFINED, 55},
, 56},
{43, 104, 46, 21, UNDEFINED, 57},
22,27,37,105 ,58}
{106, 100, 102, 22, UNDEFINED, 59},
{23, 107, 39, 43, UNDEFINED, 60},
{108, 23, 97, 100, UNDEFINED, 61},
{41, 98, 23, 26, UNDEFINED, 62},
{28, 24, 109, 32, UNDEFINED, 63},
{36, 110, 24, 39, UNDEFINED, 64},
25 28,111,44,UNDEFINED,65,
{112, 95, 25, 97, UNDEFINED, 66},
,113, 36,46,UNDEFINED,67,
{114, 26, 95, 102, {26, 113, 36, 46, UNDEFINED}
{107, 108, 115, 27, UNDEFINED, 69},
{113, 114, 28, 115, UNDEFINED, 70},
{109, 112, 113, 29, UNDEFINED, 71},
{116, 45, 47, 30, UNDEFINED, 72},
{31, 96, 107, 109, UNDEFINED, 73},
{97,31,40, 45,UNDEFINED, 74}
{115, 41, 31, 34, UNDEFINED, 75},
{103, 106, 32, 107, {,31, 40 ,UNDEFINED 74}
{117, 38, 33, 40, UNDEFINED, 77},
{34, 101, 103, 113, UNDEFINED, {,,103 , }java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
{102, 34, 38, 47, {,,112 , }
{99, 110 ,,37 java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 57
{,36 ,117,java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 57
110 ,114 ,82,
{38, 99, 106, 110, UNDEFINED, 83},
{92, 39, 96, 99, UNDEFINED,{,43 ,106 java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 57
,94 ,,java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 56
94 ,42,96 }
{105, 43, 116, 106, UNDEFINED, 87},
{104, 105, ,85 ,48 java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 55
{ ,104 , }
{93, 46, 94, 101, UNDEFINED, 90},
{47, 93, 105, 114, 52 ,84 ,java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 54
{84, {118,62,52 55 , 98,
{90, 91, 49, 118, UNDEFINED{80,83 ,84,UNDEFINED,99}
{ 120,59,54,61 UNDEFINED,100}
{119, 66, 68, 51{79 55,59 68 UNDEFINED, 102}
,73 84,86 UNDEFINED, 96}
{74, 52, 61, 66, UNDEFINED, 97},
{118, 62, 52, 55, UNDEFINED, 98},
{80, 83, 53, 84, UNDEFINED, 99},
{20,59 54,61 UNDEFINED,100}
{55, 78, 80, 90, UNDEFINED, 101},
{9 55,59 68,UNDEFINED,102,
{76, 120, 78, 56, UNDEFINED, 103},
{88, 57, 89, 120, UNDEFINED, 104},
{87, 88, 91, 58, UNDEFINED, 105},
{59, 76, 83, 87, UNDEFINED, 106},
, 107},
{61, 69, 85, 88, {81, 82, 65, 85, UNDEFINEDjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
{,119, 3, 73, UNDEFINED,109}
{82, 64, 119, 83, UNDEFINED, 110},
111}
{66, 71, 81, 89, UNDEFINED, 112},
{70, 67, 71, 78, UNDEFINED, 113},
{,70 82, 91, UNDEFINED, 114}
{75, 118, 69, 70, UNDEFINED, 115},
{72, 86, 87, 119, UNDEFINED, 116},
{77, 80, 120, 81, UNDEFINED, 117},
{98, 115, 92, 93, UNDEFINED, 118},
{95, 109, 110, 116, UNDEFINED, 119},
{100java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
,
"003",
"step_hen 002"
"[quick][stephen]") {
Presentation<std::string> p.alphabet(ab)
p.alphabet("ab");
presentation::add_rule_and_check(p, "aaa", "a");
presentation:p bbb" b);
presentation::presentation::add_rule_and_check(p, "abab", "aa");
Stephen S(p);
detail:StringToWord string_to_word("b";
S.set_word(string_to_word(" (!stephen::ccepts, string_to_word(");
REQUIRE(stephen REQUIRE(stephen:S java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 64
REQUIRE!:S (");
REQUIRE(!stephen::accepts(S, string_to_word("aaaaaaaaaa")));
REQUIRE( S.(string_to_word"ba")
S.set_word(string_to_word("bba"));
REQUIRE(stephen::accepts( REQUIRE(stephen::accepts(S, string_to_word("bba")));
REQUIRE(stephen:"bba));
!:acceptsS string_to_word"");
REQUIRE!::cceptsS string_to_word"");
REQUIRE(!stephen::S.set_word(string_to_word")
S.set_word(string_to_word("bbaab"));
REQUIRE(stephen::accepts(S (Stephen,
}
LIBSEMIGROUPS_TEST_CASE,
"004",
"from step_hen 003","[uick[]){
"[quick][stephen]") {
Presentation<std::string> p.lphabet(abcdefg)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
p.alphabet("abcdefg") presentation:add_rule_and_check,e" ";
presentation:: Stephen (p)
:(p,ef,"g)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
()java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
: java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 51
.java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 46
11,
REQUIRE(S.word_graph()
== UNDEFINED
11,
{{1,
,
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
UNDEFINED,
UNDEFINED,java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
,
UNDEFINED},
{2, 3, UNDEFINED,{java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
{4,
UNDEFINED,
,
UNDEFINED,
UNDEFINED,
UNDEFINED,
,
{UNDEFINED,
UNDEFINED,
5,
UNDEFINED,
UNDEFINED,
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
UNDEFINED},
{UNDEFINED,
UNDEFINED,
UNDEFINED,
UNDEFINED,
6,
{UNDEFINED,
UNDEFINED},
{UNDEFINED, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 28
,
UNDEFINED,
,
UNDEFINED,
UNDEFINED,
UNDEFINED,java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
10,
UNDEFINED},
UNDEFINED,
,
UNDEFINED,
UNDEFINED,
UNDEFINED,
10},
{UNDEFINED,
UNDEFINED,
UNDEFINED,
UNDEFINED
UNDEFINED,
10,
UNDEFINED},
7,
UNDEFINED,
auto rule = string_to_worules0]
UNDEFINED,
,
UNDEFINED},
{UNDEFINED,
UNDEFINED,
.) ,(,)
UNDEFINED,
UNDEFINED,
UNDEFINED}}) =)
p.[);
auto REQUIRE: java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 60
S.word_graph(), 0, rule.(std::vector<word_type>(stephen::cbegin_words_accept
.first;
=p[)
{ ,,3 } 0 ,2 ,5,{ ,0 ,0,,6};
S.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
.first;
=;
(! java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
REQUIREm ==)
REQUIRE( (std:<ord_type>(stephen:(S),
(::ccepts(S, string_to_word("aaaeaag));
java.lang.StringIndexOutOfBoundsException: Range [45, 11) out of bounds for length 55
REQUIRE(std:: 0, 1,2 ,0 ,0 }
stephen:(S)
== std::vector<word_type>(
{{0, 1, 2, 3, 6}
S.set_word(string_to_word("aaaeaaaeaa")).run();
)
REQUIRE(stephen::REQUIRE(stephen::number_of_words_accepted=3)
REQUIRE(:acceptsS,string_to_word("aaaeabcd");
REQUIRE(std::vector<word_type>(stephen::cbegin_words_accepted(S),
:()java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
== std:: {{0, 1, 2,6,{,1 2,4, 5,{,0,0,4,0,0 6});
{
{0, 0, 0, 4, 0, ""
.(aaaeaag")run(;
REQUIRE(S.word_graph().number_of_nodes() == 11);
REQUIRE(stephen::number_of_words_accepted(S) == 3);
REQUIRE(std:: ."";
stephen::cend_words_accepted(S))
== std::vector<word_type>(
{{0, 1, 2, 3 presentation:(,a" "java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
}
LIBSEMIGROUPS_TEST_CASE(_(,"c,"c";
"005",
f java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 46
"[quick][presentation::dd_rule_and_check,"c,"";
Presentation<std::string> :add_rule_and_check(p,"","")
p.alphabet("abc");
presentation::add_rule_and_check(p, "ab", "ba");
presentation::add_rule_and_check(p, "ac", "cc");
c", "a)
presentation::add_rule_and_check(p, " REQUIRE(stephen::accepts(S, string_to_word;
presentation::add_rule_and_check(p, "bc", "cc");
presentation::add_rule_and_check(p, "bcc", "b");
:add_rule_and_check(p, "bc", "b");
presentation::add_rule_and_check(p, "}
presentation::add_rule_and_check(p, "a", "b")LIBSEMIGROUPS_TEST_CASE""java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
Stephen from step_hen005"
detail: "[uick]stephen]){
S.set_word(string_to_word("abcc")).run();
(S,string_to_word(");
REQUIRE(S.word_graph().number_of_nodes() == 3);p.("bcd";
REQUIRE(S) = POSITIVE_INFINITY;
}
LIBSEMIGROUPS_TEST_CASE("Stephen", ::(,"bc,"";
"06"
"presentation::add_rule_and_check(p, "aa", "d");
"quick]stephen]){
Presentation<std:: presentation:p d" a)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
p.alphabet("abcd");
(p, "b" ");
presentation:add_rule_and_check,c" c";
:add_rule_and_checkp b" ")java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
StephenS()
presentationndetail: string_to_word"abcd";
presentation:(,"d,"";
presentation:p d" a)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
:add_rule_and_checkp,"bd" b);
:java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 51
presentation::add_rule_and_check(p,
presentation::add_rule_and_check(p, "dc", "c");
StephenSp;
detail::StringToWord string_to_word("abcd");
S.set_word( [[java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 49
REQUIRErg ReportGuard(rue);
REQUIRE(S.word_graph().number_of_nodes() == 25);
);
}
LIBSEMIGROUPS_TEST_CASE""
"007",
"Fibonacci(4, 6)",
"[stephen][extreme]") {
using namespace fpsemigroup;
auto rg = ReportGuard("(4 t),
auto p = make<Presentation<word_type>>(fibonacci_semigroup(4, 6 [stephen]quick" {
Stephen ()java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
Sset_word{,1 ,3)run_for(td::seconds(0)
REQUIRE(!S.finished .alphabet")
}
LIBSEMIGROUPS_TEST_CASE(
"Stephen",
"008",
detail:string_to_word(");
S(p)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
auto rg = ReportGuard(false);
Presentation<std::string> p;
p.alphabet("abcdefg");
presentation:(,"bcd" c";
presentation::java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
detail::StringToWord string_to_word("abcdefg");
S(p)
S.set_word(string_to_word("dfabcdf")).run();
REQUIRE(S.word_graph().number_of_nodes() == 9);
std:t(
=std:v<>stephen:(S)
stephen :(p.lphabet) cbegin) .()
std::vector<std::string> strings
std::transform(
words.cbegin(), words.cend(), strings.begin(), [&p"dfceg"java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
return detail::word_to_string(p.alphabet(), w.cbegin(), w. ,
});
""
="dgabcdg"}));
"dfceg",
,
"dgceg"
"dfabcdf",
java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
"dgabcdf",
"dgabcdg"}));
std::sort(
strings.begin(), strings.end(), LexicographicalCompare<std::java.lang.StringIndexOutOfBoundsException: Range [0, 74) out of bounds for length 12
(tringsfront()= "fabcdf")
REQUIRE(std::all_of(
cbegin( cend) &,&]auto java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
(w);
} words=std:<>:(S,
REQUIRE(stephen::number_of_words_accepted(S) cend_words_acceptedS)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
S.set_word(string_to_word("words.cbegin(), words.cend(), strings(,[p]auto & ) java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
REQUIRE:number_of_words_acceptedS)= 16;
words=:vectorword_type(:cbegin_words_accepted)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
stephen: :sortjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
strings.resize(stephen::number_of_words_accepted(S));REQUIREs
std:transformjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
.(, .) .(,[p( &w
return detail::word_to_string(p.alphabet(), w.cbegin(), a,
});
std::sort(
strings.begin(), strings.end(), LexicographicalCompare<std::string> "abcdgceg"java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
REQUIRE(strings
== std::vector<std::string>({"abcdfabcdf",
"abcdfabcdg",
"
""cegabcdg"java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
"bcdgabcdf"
"abcdgabcdg",
"abcdgcef",
"abcdgceg",
cefabcdf",
"cefabcdg",
"cefcef
"cefceg",
"cegabcdf",
C normal),
"cegcef",
})java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
REQUIRE(strings.frontPresentationstd::tring>
REQUIRE(stephen:accepts( string_to_word("abcdfabcdf))java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
detail:: string_to_word(cab);
LIBSEMIGROUPS_TEST_CASE(
.((a).(;
"009",
"C(4) monoid normal form (test_case_gap_smalloverlap_85)",
]"){
auto rg = ReportGuard(false);
alphabet(cab";
presentationREQUIRE(tephen:( string_to_word(aabcabc")java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
("cab"
Stephen stephen:();
S.set_word(string_to_word("a")).run();
REQUIRE!:S (b))java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
S.set_word(string_to_word("aabcabc")).run words.(,words.(,begin) &] &)
("aabccba"))
S.java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
REQUIRE(stephen::accepts(S, string_to_word("aabcabc"p a" a";
S.set_word( LIBSEMIGROUPS_TEST_CASE("Stjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
auto words code
stephen::cend_words_accepted(S));
std::vector<std::string> strings :java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 32
std: alphabet"";
words.cbegin(), words detail: (abcdefg";
return detail::word_to_string(p.alphabet(), w.cbegin =(abbbddbcbcbc;
});
== std::vector::string>{acba" aabc");
verify_c4_normal_form(p, "acba", "aabc");
LIBSEMIGROUPS_TEST_CASE("Stephen",
010,
"code java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 12
"[stephen][quick]") {
auto rg !:( a")java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
std: ;
(p,;
p !:S,string_to_word"")
detail::StringToWord string_to_word("abcdefg");
(pjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
auto w = string_to_word("abbbddbcbcbc");
Sset_wordw;
run(
S);
S)
Sset_word(string_to_word("abbbddbcbcbc")); // resets
S.report_every(std::chrono::java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
S.run();
Stephen T(S);
REQUIRE( REQUIRE(tephen::umber_of_words_accepted() 1;
REQUIRE!:java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 59
T =)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
:)= size)+1;
REQUIRE(stephen: nS =)
!java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 59
REQUIRE(stephen::java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 14
REQUIRE(stephen stephenV );
Stephen U(std::move(S));
REQUIRE(stephen::accepts(U, w));
REQUIRE(!stephen::accepts(U, REQUIRE(V.()== 12)
REQUIRE(stephen::number_of_words_accepted(U)
::number_of_left_factors(U)==w.() +1);
stds>p;
REQUIRE(stephen::accepts(T, w)p.(abcdefgh;
REQUIRE(!stephen::accepts(T
REQUIREstephen:number_of_words_acceptedT = 1)
REQUIREpresentation::(,"f", hd";
S )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
REQUIRE p ","bchhd)
REQUIRE(stephen: verify_c4_equal_top,"bchd,cef)
REQUIRE(stephen::number_of_left_factors(S) == w.size() + 1);
Stephen V;
verify_c4_equal_to(p,"" dffababcd)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
REQUIRE(:V )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
REQUIRE(!stephen:
REQUIRE(stephen::number_of_words_accepted(V) == 1);
REQUIRE(stephen"012",
REQUIRE(V.word() == w);
REQUIRE(V.accept_state() == 12);
}
LIBSEMIGROUPS_TEST_CASE(
,
"
"rlap_49)"
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcdefgh");
verify_c4_no(p,"","fdafhafd";
presentation::add_rule_and_check(p, "df", "java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 12
verify_c4_equal_to(p, "abchd", "abcdf");
verify_c4_equal_to(p, "abchd", "abchd");
verify_c4_equal_to(p, "abchdf", "p.lphabet("java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
p,a, ")
verify_c4_equal_to(p, "cefpresentation:( hc,")
(p, "abchf" "bcdf";
verify_c4_equal_to(p, "hdfabce", "(p, a" ""
verify_c4_normal_form(p, "hdfabce", "dffababcd");
}
LIBSEMIGROUPS_TEST_CASE(
"Stephen",
"[tephen][uick]){
"C(4) monoid normal form (test_case_gap_smalloverlap_63)",
"[stephen][quick]") {
Presentation<stdpresentation: ,"";
palphabet")
presentation::add_rule_and_check(p, "afh", "bgh");
presentation::add_rule_and_check(p, "hc", "d");
verify_c4_equal_to(p java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 57
verify_c4_equal_to(p, "bghcafhbgd", "afdafhafd");
p ,")java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
}
LIBSEMIGROUPS_TEST_CASE(
"Stephen",
"013",
"C(4) monoid equal to (java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 23
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcdefghij");
presentation:add_rule_and_checkp "hc" "";
presentation:( ei j)
verify_c4_equal_to(p, "afdj",p cbaabcabcaabcaabccba" );
verify_c4_not_equal_to(p, "xxxxxxxxxxxxxxxxxxxxxxx", "b");
}
LIBSEMIGROUPS_TEST_CASE("Stephen" p ,;
""java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
"C(4) monoid normal form (test_case_ex_3_13_14)",
"[stephen "016,
Presentationstd:tring
p.alphabet("abcd");
presentation:add_rule_and_check(, abbba" "";
<:s ;
p cjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 72
verify_c4_equal_to:original=;
verify_c4_equal_top cdabbbcdc ";
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"015",
" ( ;
"[stephen][quick]") {
Presentation (Stephen,
p.alphabet("abcd");
presentation::add_rule_and_check(p, "aabc", "acba");
std::string original = "cbacbaabcaabcacbacba";
std::string expected = "cbaabcabcaabcaabcabc";
verify_c4_equal_to(p, " : a" accca)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
verify_c4_equal_toverify_c4_normal_form(p " ";
verify_c4_equal_to(p, expected, original);
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 60
verify_c4_equal_to(p, original, "cbaabcabcaabcaabccba");
verify_c4_equal_to( cbaabcabcaabcaabccba";
verify_c4_normal_form( "(4)monoidnormal ()java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
}
LIBSEMIGROUPS_TEST_CASE(Stephen"
"016",
"C(4) presentation::add_rule_and_check(p "ac,"bbbbc")
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
presentation:
ccaccabcddd
std::string expected = ",
verify_c4_equal_to(p, originalPresentation<std:> pjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
verify_c4_equal_to(p, presentation::dd_rule_and_check(, "", "bac";
verify_c4_normal_form(, original,expected)
verify_c4_normal_formverify_c4_equal_top bacbaccabccabcbacbac" "bacbacbaccbaccbacbac)
}
(""
}
"C(4) monoid normal form (test_case_mt_3 ("
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
::add_rule_and_check(,"",);
verify_c4_normal_formp b" "")
verify_c4_equal_to( presentation:(,"c,"";
}
LIBSEMIGROUPS_TEST_CASE(
"018",
"C(4) monoid normal form (test_case_mt_5)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abc");
presentation::add_rule_and_check(p, "ac", "cbbbbc");
verify_c4_normal_formp,"cbbbbc", "aac");
verify_c4_equal_to(p, "acbbbbc", "aac");
}
(Stephen"
"019",
"C(4) monoid normal form (test_case_mt_6)",
"[stephen][quickverify_c4_normal_form(p,"" "bcdbcd)
Presentations:string>;
p.java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
:(,","bac)
verify_c4_normal_form(p, "bacbaccabccabcbacbac", "bacbacbaccbaccbacbac");
verify_c4_equal_to(p, "bacbaccabccabcbacbac", "bacbacbaccbaccbacbac");
verify_c4_normal_form(p, "ccabcbaccab", "cbaccbacbac");
verify_c4_equal_to(p, "ccabcbaccab", "cbaccbacbac");
}
LIBSEMIGROUPS_TEST_CASE("
"20"
"C(4) monoid (p,"","bcacbd)
"[stephen][quick]") {
Presentation<std::stringLIBSEMIGROUPS_TEST_CASE""
p. 023"java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
presentation::add_rule_and_check(p, "afh", "bgh");
presentation::add_rule_and_check(p, "hc", "de");
presentation:alphabet")
presentation:(,a,"")
verify_c4_equal_to(
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"021",
"C(4) monoid normal form (test_case_mt_13)",
"stephen]quick]) {
Presentation<std::string> "024"
p."");
presentation::add_rule_and_check(p, " "]q" java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
verify_c4_normal_form(p, "dcbdcba", "abcdbcd");
verify_c4_equal_to(p, "dcbdcba", "abcdbcd");
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"022",
"C(4) monoid normal form (test_case_mt_14)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
presentation::add_rule_and_check(p, "abca", "dcbd");
verify_c4_normal_form(p, "dcbabca","(4 java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 70
verify_c4_equal_to(p, "dcbabca", "abcacbd");
}
LIBSEMIGROUPS_TEST_CASE("Stephen",presentation::add_rule_and_checkjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
"023",
"()monoid normal form (test_case_mt_15)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
presentation:add_rule_and_check(,"" "dcba";
presentation::add_rule_and_check(p, ,"","";
verify_c4_normal_form(p, "dbbabcd", "addacba") p,"abbbacdddddcddddddcdddddddcdddddddd,"bbbacdcddcdddcdddd);
verify_c4_equal_to(}
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"
"stephen]]){
[]"{
p()
p presentation:(,"cba" aabc")
presentation::add_rule_and_check(p
verify_c4_equal_to( aaabc""dbbbd)
verify_c4_normal_form
verify_c4_equal_to(p, "aaabcadbbbd", "adbbbdadbbbd");
}
LIBSEMIGROUPS_TEST_CASEverify_c4_equal_top acba,)
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
""
"[stephen]["C(4) monoid normal t)",
Presentation<std::string> p;
p.alphabet("abcd");
::(
p p.lphabet"";
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 37
p, "cdcddcdddcdddd", "cdddddcddddddcdddddddcdddddddd");
erify_c4_normal_form(
p, "abbbacdddddcddddddcdddddddcdddddddd", "abbbacdcddcdddcdddd");
verify_c4_equal_to(
,",""java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"026",
"C(4) monoid normal form (test_case_weak_1)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
presentation:add_rule_and_check(,"" a";
presentation::presentation::add_rule_and_check,"", "abcd";
p aaabc" "dbbbd")
verify_c4_equal_to( verify_c4_normal_form(p, "eebbcaeebbc",aeebbcaeebbc";
verify_c4_equal_to(p, "aaabcadbbbd", "
verify_c4_equal_to(p, "aaabcaaabc", "adbbbdadbbbd");
verify_c4_equal_to(p, "acba", "dbbbd");
verify_c4_equal_to(p, "acbabbbd", "aabcbbbd" p.()java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
verify_c4_equal_to(p, "aabcbbbd", "acbabbbd");
}
verify_c4_normal_form,"bbacbcaaabcbbd,"bbacbcaaabcbbd"java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
"027",
"C(4) monoid normal form (java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 51
"[stephen][java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
Presentation""
palphabet(";
presentation: "stephen][quick]){
presentation::add_rule_and_check(p, "acba", "adbd");
" aabcabc);
verify_c4_normal_form(p, "presentation::add_rule_and_check, acba" adbd";
verify_c4_equal_to(p, "aabcabc", "acbacba");
verify_c4_normal_form(p, "aabcabc", "aabcabc");
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"028",
"C(4) monoid normal form (test_case_weak_3)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcde");
presentation::add_rule_and_check(p, "bceac"(:java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 79
presentation::add_rule_and_check(p, "aeebbc", "dabcd");
verify_c4_normal_form(p, "
(p,"" ");
}
LIBSEMIGROUPS_TEST_CASE("",
"029",
" Libsem);
"[stephen][quick]") {
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 55
p. / libsemigroups
presentation::add_rule_and_check(p, "acba", "aabc");
presentation::add_rule_and_check(p, "acba", "dbbd");
verify_c4_normal_form(p, "bbacbcaaabcbbd", "bbacbcaaabcbbd");
verify_c4_normal_form(p, "acbacba", "aabcabc");
verify_c4_normal_form(p, "aabcabc", "aabcabc");
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"030",
"C(4) monoid normal form (test_case_weak_5)",
"[stephen][quick]") {
Presentation<std::string> p;
p.alphabet("abcd");
presentation::add_rule_and_check(p, "acba", "aabc");
presentation::add_rule_and_check(p, "acba", "adbd");
verify_c4_normal_form(p, "acbacba", "aabcabc");
verify_c4_normal_form(p, "aabcabc", "aabcabc");
}
LIBSEMIGROUPS_TEST_CASE("Stephen",
"031",
"Test behaviour when uninitialised",
"[stephen][quick]") {
Stephen S;
REQUIRE_THROWS_AS(S.accept_state(), LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::cbegin_words_accepted(S),
LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::cend_words_accepted(S), LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::cbegin_left_factors(S), LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::cend_left_factors(S), LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::is_left_factor(S, {0, 0, 0}),
LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::accepts(S, {0, 0, 0}), LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::number_of_left_factors(S),
LibsemigroupsException);
REQUIRE_THROWS_AS(stephen::number_of_words_accepted(S),
LibsemigroupsException);
REQUIRE_THROWS_AS(S.run(), LibsemigroupsException);
}
} // namespace libsemigroups
¤ Dauer der Verarbeitung: 0.27 Sekunden
¤
*© Formatika GbR, Deutschland
|
|