Skip to content

Commit 487fe66

Browse files
committed
Refact & clear
1 parent 6e4b2cc commit 487fe66

9 files changed

Lines changed: 40 additions & 26 deletions

File tree

AlgorithmsLibrary/AlgorithmsLibrary.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
<Compile Include="ArithmeticCodingAlgm\Symbol.cs" />
5151
<Compile Include="CommonClasses\Deque.cs" />
5252
<Compile Include="CommonClasses\DoublyNode.cs" />
53+
<Compile Include="CommonClasses\Exception.cs" />
5354
<Compile Include="CommonClasses\TreeNodePrinter.cs" />
5455
<Compile Include="Extensions\StringBuilderExtensions.cs" />
5556
<Compile Include="Results\EncodedMessage.cs" />

AlgorithmsLibrary/ArithmeticCodingAlgm/ArithmeticCodingAlgm.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public static IAlgmEncoded<string> Decode(Dictionary<char, int> frequencies, str
9999
StringBuilder decoded = new StringBuilder(string.Empty);
100100

101101
//decimal code = int.Parse(encoded) / (decimal)Math.Pow(10, encoded.Length);
102-
decimal code = Convert.ToDecimal("0,"+encoded);
102+
decimal code = Convert.ToDecimal("0," + encoded);
103103
decimal HighRange = 1, LowRange = 0, h, l;
104104
for (int i = 0; i < CountOfAllSymbols; i++)
105105
{
@@ -115,7 +115,7 @@ public static IAlgmEncoded<string> Decode(Dictionary<char, int> frequencies, str
115115
}
116116
private static double CalculateCompressionRatio(string sourceString, string compressionString)
117117
{
118-
return Math.Round((double)((sourceString.Length * 8)/Convert.ToString(compressionString.Length, 2).Length), 3);
118+
return Math.Round((double)((sourceString.Length * 8) / Convert.ToString(compressionString.Length, 2).Length), 3);
119119
}
120120
}
121121
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
3+
namespace AlgorithmsLibrary.CommonClasses
4+
{
5+
public class CodingException : Exception
6+
{
7+
public CodingException()
8+
: base("Error in coding!") { }
9+
public CodingException(string message)
10+
: base(message) { }
11+
}
12+
}

AlgorithmsLibrary/HuffmanAlgm/HuffmanAlgm.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static IAlgmEncoded<string, Dictionary<char, string>> Encode(string sourc
6767
foreach (char c in source)
6868
encoded.Append(codes[c]);
6969

70-
var encodedString= encoded.ToString();
70+
var encodedString = encoded.ToString();
7171
return new EncodedMessage<string, Dictionary<char, string>>(encodedString, codes, CalculateCompressionRatio(source, encodedString));
7272
}
7373

AlgorithmsLibrary/LZ77Algm/LZ77Algm.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using AlgorithmsLibrary.StringBuilderExtensions;
1+
using AlgorithmsLibrary.CommonClasses;
2+
using AlgorithmsLibrary.StringBuilderExtensions;
23
using System;
34
using System.Collections.Generic;
45
using System.Text;
@@ -117,7 +118,7 @@ private static List<CodeBlock> ParseEncodedString(string encodedString)
117118
Regex intRegex = new Regex(@"\d+"); //регулярка цыфры
118119
if (!globalCode.IsMatch(encodedString))
119120
{
120-
throw new ArgumentException();
121+
throw new CodingException();
121122
}
122123

123124
MatchCollection matches = regex.Matches(encodedString);
@@ -156,7 +157,7 @@ public static IAlgmEncoded<string> Decode(string encodedString)
156157
if (resultDecoding.Length > 0 && resultDecoding[resultDecoding.Length - 1].Equals('$'))
157158
resultDecoding.Remove(resultDecoding.Length - 1, 1);
158159

159-
var decodedString = resultDecoding.ToString();
160+
var decodedString = resultDecoding.ToString();
160161
return new EncodedMessage<string>(decodedString, CalculateCompressionRatio(decodedString, encodedStringParsed));
161162
}
162163
}

AlgorithmsLibrary/RLEAlgmBWT/RLEAlgmBWT.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using AlgorithmsLibrary.CommonClasses;
2+
using System;
23
using System.Collections.Generic;
34
using System.Text;
45
using System.Text.RegularExpressions;
@@ -56,7 +57,7 @@ private static List<RLECodeBlock> ParseEncodedString(string encodedString)
5657
//если входная строка не подходит под паттерн то выбрасывается ошибка
5758
if (!globalRLE.IsMatch(encodedString))
5859
{
59-
throw new ArgumentException();
60+
throw new CodingException();
6061
}
6162

6263
//получаем число как номер строки в матрице
@@ -102,7 +103,7 @@ public static IAlgmEncoded<string> Decode(string encodedString)
102103
}
103104

104105
private static double CalculateCompressionRatio(string sourceString, List<RLECodeBlock> compressionString)
105-
{
106+
{
106107
double countBitsSourceString = 8 * sourceString.Length;
107108

108109
double countBitsCompressionString = 0;

AlgorithmsLibrary/Results/EncodedMessageCollection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public EncodedMessage(T1 answer, T2 frequencies, double compressionRatio)
3434
{
3535
this.answer = answer;
3636
this.data = frequencies;
37-
this.compressionRatio= compressionRatio;
37+
this.compressionRatio = compressionRatio;
3838
}
3939
}
4040
}

AlgorithmsWpf/MainWindow.xaml.cs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
using System;
1+
using AlgorithmsLibrary;
2+
using System;
23
using System.Collections.Generic;
34
using System.IO;
45
using System.Linq;
5-
using System.Text;
66
using System.Windows;
77
using System.Windows.Controls;
8-
using AlgorithmsLibrary;
98

109
namespace AlgorithmsWpf
1110
{
@@ -110,7 +109,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
110109
var Huf = HuffmanAlgm.Encode(TextForEncoding.Text);
111110
EncodedText.Text = Huf.GetAnswer();
112111
foreach (var i in Huf.GetData())
113-
str += i.Key.ToString() + " " + i.Value.ToString()+'\n';
112+
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
114113
FriqDictionary.Text = str;
115114
CompressionRatio.Text = Huf.GetCompressionRatio().ToString();
116115
break;
@@ -121,7 +120,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
121120
var Sha = ShannonFanoAlgm.Encode(TextForEncoding.Text);
122121
EncodedText.Text = Sha.GetAnswer();
123122
foreach (var i in Sha.GetData())
124-
str += i.Key.ToString() + " " + i.Value.ToString()+'\n';
123+
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
125124
FriqDictionary.Text = str;
126125
CompressionRatio.Text = Sha.GetCompressionRatio().ToString();
127126
break;
@@ -132,7 +131,7 @@ private void EncodeClicButton(object sender, RoutedEventArgs e)
132131
var Ari = ArithmeticCodingAlgm.Encode(TextForEncoding.Text);
133132
EncodedText.Text = Ari.GetAnswer();
134133
foreach (var i in Ari.GetData().GetData())
135-
str += i.Key.ToString() + " " + i.Value.ToString()+'\n';
134+
str += i.Key.ToString() + " " + i.Value.ToString() + '\n';
136135
FriqDictionary.Text = str;
137136
CompressionRatio.Text = Ari.GetCompressionRatio().ToString();
138137
break;
@@ -189,14 +188,14 @@ private void DecodeClicButton(object sender, RoutedEventArgs e)
189188
if (FriqDictionary.Text.Length == 0) { NoDictionaryForDecoding = true; break; }
190189

191190
var Sha = ShannonFanoAlgm.Decode(CreateDictionary(FriqDictionary.Text), EncodedText.Text);
192-
TextAfterDecoding.Text = Sha.GetAnswer();
191+
TextAfterDecoding.Text = Sha.GetAnswer();
193192
break;
194193
case 2:
195194
if (EncodedText.Text.Length == 0) { NoTextForDecoding = true; break; }
196195
if (FriqDictionary.Text.Length == 0) { NoDictionaryForDecoding = true; break; }
197196

198-
var Ari = ArithmeticCodingAlgm.Decode(CreateDictionary(FriqDictionary.Text).ToDictionary(x => x.Key, x=> int.Parse(x.Value)),
199-
EncodedText.Text, TextForEncoding.Text.Length) ;
197+
var Ari = ArithmeticCodingAlgm.Decode(CreateDictionary(FriqDictionary.Text).ToDictionary(x => x.Key, x => int.Parse(x.Value)),
198+
EncodedText.Text, TextForEncoding.Text.Length);
200199
TextAfterDecoding.Text = Ari.GetAnswer();
201200
break;
202201
case 3:
@@ -226,11 +225,11 @@ private void DecodeClicButton(object sender, RoutedEventArgs e)
226225
}
227226
if (NoTextForDecoding)
228227
{
229-
// открыть сообщение о том, что нет текста для декодирования
228+
// открыть сообщение о том, что нет текста для декодирования
230229
}
231230
if (NoDictionaryForDecoding)
232231
{
233-
// открыть сообщение о том, что нет кодов для декодирования
232+
// открыть сообщение о том, что нет кодов для декодирования
234233
}
235234
}
236235

@@ -278,7 +277,7 @@ private void DecodeFromFileClicButton(object sender, RoutedEventArgs e)
278277
string filename = dlg.FileName;
279278

280279
// НУЖНО ОПРЕДЕЛИТЬСЯ С ФОРМАТОМ ВХОДНОГО ФАЙКА ( КАКОЙ РАЗДЕЛИТЕЛЬ МЕЖДУ ДАННЫМИ)
281-
280+
282281
//if (new List<int>() { 0, 1, 2 }.Contains(IndexOfCurrentAlgorithm))
283282
//{
284283
// ClearHuf_Fano_Arith_Border();
@@ -342,12 +341,12 @@ private void EnterDown_Dictionary(object sender, System.Windows.Input.KeyEventAr
342341
FriqDictionary.SelectionStart = FriqDictionary.Text.Length;
343342
}
344343
}// Написать такие методы для всех полей
345-
344+
346345
Dictionary<char, string> CreateDictionary(string str)
347346
{
348347
Dictionary<char, string> dic = new Dictionary<char, string>();
349-
int i =0, index = 1;
350-
while ( index <str.Length)
348+
int i = 0, index = 1;
349+
while (index < str.Length)
351350
{
352351
index = str.IndexOf('\n', ++index);
353352
dic.Add(str[i], str.Substring(i + 2, index - i - 2));

UnitTestProject/RLEAlgmBWTUnitTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void CalculateBWTForAbracadabraString()
1717

1818
Assert.Equal(expected, actual.encoded);
1919
}
20-
20+
2121
[Fact]
2222
public void CalculateCompressionRatio()
2323
{

0 commit comments

Comments
 (0)