MCPcopy
hub / github.com/TheAlgorithms/Python / reverse_bwt

Function reverse_bwt

data_compression/burrows_wheeler.py:93–162  ·  view source on GitHub ↗

:param bwt_string: The string returned from bwt algorithm execution :param idx_original_string: A 0-based index of the string that was used to generate bwt_string at ordered rotations list :return: The string used to generate bwt_string when bwt was executed :raises TypeError: I

(bwt_string: str, idx_original_string: int)

Source from the content-addressed store, hash-verified

91
92
93def reverse_bwt(bwt_string: str, idx_original_string: int) -> str:
94 """
95 :param bwt_string: The string returned from bwt algorithm execution
96 :param idx_original_string: A 0-based index of the string that was used to
97 generate bwt_string at ordered rotations list
98 :return: The string used to generate bwt_string when bwt was executed
99 :raises TypeError: If the bwt_string parameter type is not str
100 :raises ValueError: If the bwt_string parameter is empty
101 :raises TypeError: If the idx_original_string type is not int or if not
102 possible to cast it to int
103 :raises ValueError: If the idx_original_string value is lower than 0 or
104 greater than len(bwt_string) - 1
105
106 >>> reverse_bwt("BNN^AAA", 6)
107 '^BANANA'
108 >>> reverse_bwt("aaaadss_c__aa", 3)
109 'a_asa_da_casa'
110 >>> reverse_bwt("mnpbnnaaaaaa", 11)
111 'panamabanana'
112 >>> reverse_bwt(4, 11)
113 Traceback (most recent call last):
114 ...
115 TypeError: The parameter bwt_string type must be str.
116 >>> reverse_bwt("", 11)
117 Traceback (most recent call last):
118 ...
119 ValueError: The parameter bwt_string must not be empty.
120 >>> reverse_bwt("mnpbnnaaaaaa", "asd") # doctest: +NORMALIZE_WHITESPACE
121 Traceback (most recent call last):
122 ...
123 TypeError: The parameter idx_original_string type must be int or passive
124 of cast to int.
125 >>> reverse_bwt("mnpbnnaaaaaa", -1)
126 Traceback (most recent call last):
127 ...
128 ValueError: The parameter idx_original_string must not be lower than 0.
129 >>> reverse_bwt("mnpbnnaaaaaa", 12) # doctest: +NORMALIZE_WHITESPACE
130 Traceback (most recent call last):
131 ...
132 ValueError: The parameter idx_original_string must be lower than
133 len(bwt_string).
134 >>> reverse_bwt("mnpbnnaaaaaa", 11.0)
135 'panamabanana'
136 >>> reverse_bwt("mnpbnnaaaaaa", 11.4)
137 'panamabanana'
138 """
139 if not isinstance(bwt_string, str):
140 raise TypeError("The parameter bwt_string type must be str.")
141 if not bwt_string:
142 raise ValueError("The parameter bwt_string must not be empty.")
143 try:
144 idx_original_string = int(idx_original_string)
145 except ValueError:
146 raise TypeError(
147 "The parameter idx_original_string type must be int or passive"
148 " of cast to int."
149 )
150 if idx_original_string < 0:

Callers 1

burrows_wheeler.pyFile · 0.85

Calls 1

sortMethod · 0.80

Tested by

no test coverage detected