Prakticke aspekty vývoje softwaru: Projekt 1 – Testování  1.0
Projekt zaměřený na osvojení praktik testování včetně technik test driven development, black box testing a white box testing.
Veřejné metody
Dokumentace třídy SuffixAutomaton

Třída sufixového automatu. ...

#include <white_box_code.h>

Veřejné metody

 SuffixAutomaton ()
 Konstruktor nového prázdného objektu sufixového automatu. ...
 
 SuffixAutomaton (const std::string &seq)
 Konstruktor nového objektu sufixového automatu. ...
 
void add_element (char elem)
 Přidání prvku do automatu. ...
 
void add_sequence (const std::string &seq)
 Přidání sekvence elementů do automatu. ...
 
bool step (const size_t state_index, const char &elem, size_t &next_state) const
 Krok z daného stavu pomocí prvku. ...
 
const std::unordered_map< char, size_t > & next (const size_t state_index) const
 Získání elementů, ze kterých je možný přechod z daného stavu. ...
 
bool contains (const std::string &seq) const
 Kontrola, zda automat obsahuje danou sekvenci. ...
 
std::vector< size_t > topological_sort () const
 Získání topologického uspořádání stavů Složitost: O(n), kde n je počet stavů v automatu. ...
 
std::string longest_direct_continuation (const size_t state_index) const
 Získání nejdelšího přímého pokračování z daného stavu Nejdelší přímé pokračování je definováno jako sekvence přechodů ze stavů mající právě jeden odchozí přechod, počínaje daným stavem. ...
 
size_t size () const
 Získání počtu stavů v automatu. ...
 
void clear ()
 Vyčištění automatu. ...
 
const Stateget_state (size_t index) const
 Získání stavu na daném indexu. ...
 

Detailní popis

Třída sufixového automatu.

Dokumentace konstruktoru a destruktoru

◆ SuffixAutomaton() [1/2]

SuffixAutomaton::SuffixAutomaton ( )

Konstruktor nového prázdného objektu sufixového automatu.

◆ SuffixAutomaton() [2/2]

SuffixAutomaton::SuffixAutomaton ( const std::string &  seq)
inline

Konstruktor nového objektu sufixového automatu.

Parametry
seq[in]Počáteční sekvence pro vytvoření automatu

Dokumentace k metodám

◆ add_element()

void SuffixAutomaton::add_element ( char  elem)

Přidání prvku do automatu.

Parametry
elem[in]Prvek k přidání

◆ add_sequence()

void SuffixAutomaton::add_sequence ( const std::string &  seq)

Přidání sekvence elementů do automatu.

Parametry
seq[in]Sekvence k přidání

◆ clear()

void SuffixAutomaton::clear ( )

Vyčištění automatu.

◆ contains()

bool SuffixAutomaton::contains ( const std::string &  seq) const

Kontrola, zda automat obsahuje danou sekvenci.

Parametry
seq[in]Sekvence ke kontrole
Návratová hodnota
true Pokud je sekvence obsažena v automatu

◆ get_state()

const State & SuffixAutomaton::get_state ( size_t  index) const

Získání stavu na daném indexu.

Parametry
index[in]Index stavu
Návratová hodnota
const State& Stav na daném indexu
Výjimky
std::out_of_rangePokud je index mimo rozsah

◆ longest_direct_continuation()

std::string SuffixAutomaton::longest_direct_continuation ( const size_t  state_index) const

Získání nejdelšího přímého pokračování z daného stavu Nejdelší přímé pokračování je definováno jako sekvence přechodů ze stavů mající právě jeden odchozí přechod, počínaje daným stavem.

Parametry
state_index[in]Index stavu
Návratová hodnota
std::string Nejdelší přímé pokračování - sekvence elementů

◆ next()

const std::unordered_map< char, size_t > & SuffixAutomaton::next ( const size_t  state_index) const

Získání elementů, ze kterých je možný přechod z daného stavu.

Parametry
state_index[in]Index stavu
Návratová hodnota
Mapa přechodů z daného stavu, kde klíčem je prvek a hodnotou index následujícího stavu
Výjimky
std::out_of_rangePokud je state_index mimo rozsah

◆ size()

size_t SuffixAutomaton::size ( ) const

Získání počtu stavů v automatu.

Návratová hodnota
size_t Počet stavů

◆ step()

bool SuffixAutomaton::step ( const size_t  state_index,
const char &  elem,
size_t &  next_state 
) const

Krok z daného stavu pomocí prvku.

Parametry
state_index[in]Index stavu
elem[in]Prvek pro přechod
next_state[out]Index následujícího stavu, pokud přechod existuje, jinak nedefinováno
Návratová hodnota
true Pokud přechod existuje
Výjimky
std::out_of_rangePokud je state_index mimo rozsah

◆ topological_sort()

std::vector< size_t > SuffixAutomaton::topological_sort ( ) const

Získání topologického uspořádání stavů Složitost: O(n), kde n je počet stavů v automatu.

Návratová hodnota
std::vector<size_t> Topologické uspořádání indexů stavů

Dokumentace pro tuto třídu byla generována z následujících souborů: