Skip to content

Commit

Permalink
poprawiono metodę normalizuj
Browse files Browse the repository at this point in the history
  • Loading branch information
IIUJ-KrzysztofDawidowicz committed Jun 10, 2013
1 parent 0e68e82 commit 8b3bd98
Show file tree
Hide file tree
Showing 8 changed files with 145 additions and 69 deletions.
Binary file removed nowaWersja/MuseSort/MuseSort.suo
Binary file not shown.
24 changes: 7 additions & 17 deletions nowaWersja/MuseSort/MuseSort/Film.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace MuseSort
Expand Down Expand Up @@ -119,25 +121,13 @@ private void pobierzTagi()
{
resetujTagi();
}

protected String normalizuj(String x)
{
String wynik = "";
x = x.Replace("_", " ");
x = x.Replace(".", " ");
x = x.Replace("+", " ");
x = x.ToLower();
String y = x.ToUpper();
String[] tab = x.Split(' ');
String[] tab1 = y.Split(' ');
int i = 0;
while (i < tab.Length)
{
tab[i] = tab[i].Substring(1);
tab[i] = tab1[i].First() + tab[i];
wynik += tab[i] + " ";
i++;
}
wynik = wynik.Substring(0, wynik.Length - 1);
if (string.IsNullOrEmpty(x))
return x;
var wynik = Regex.Replace(x, @"[_\.\+]", " "); //Zamieniamy znaki specjalne _ . i + na spacje
wynik = new CultureInfo("pl-PL", false).TextInfo.ToTitleCase(wynik); //Wszystki pierwsze litery na duże,
return wynik;
}
#endregion
Expand Down
87 changes: 48 additions & 39 deletions nowaWersja/MuseSort/MuseSort/Utwor.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
Expand Down Expand Up @@ -243,44 +243,53 @@ public override String generujNazwePlikuZTagow()
logi += "Wygenerowano nową nazwę: " + nowaNazwa + Environment.NewLine;
nowaNazwa = normalizuj(nowaNazwa);
return nowaNazwa;
}

public override string sciezka_katalogu_z_pol(string[] kategorie, bool duplikat = false)
{
string sciezka_katalogu;
if (duplikat)
sciezka_katalogu = @"Musesort\Muzyka\Zduplikowane\Posegregowane\";
else
sciezka_katalogu = @"Musesort\Muzyka\Posegregowane\";

string sciezkaZDanych = dane.sciezkaKataloguZPol(kategorie);

if (sciezkaZDanych.Equals("")) //przenieś do "Nieprzydzielone
{
if (duplikat)
sciezka_katalogu = @"Musesort\Muzyka\Zduplikowane\Posegregowane\Nieprzydzielone";
else
sciezka_katalogu = @"Musesort\Muzyka\Posegregowane\Nieprzydzielone";
}
else
sciezka_katalogu += sciezkaZDanych;

if (kategorie.Last() == "alfabetycznie")
sciezka_katalogu += dane.tytul.Substring(0, 1);

if (duplikat && File.Exists(Path.Combine(sciezka_katalogu, Path.GetFileName(Sciezka))))
{
string fullpath = Path.Combine(sciezka_katalogu, Nazwa);
int i;
for (i = 1; File.Exists(fullpath); )
{
i++;
fullpath = Path.Combine(sciezka_katalogu + Convert.ToString(i), Nazwa);
}
sciezka_katalogu += Convert.ToString(i);
}

return sciezka_katalogu;
}

public override string sciezka_katalogu_z_pol(string[] kategorie, bool duplikat = false)
{
var sciezkaKatalogu = duplikat ? @"Musesort\Muzyka\Zduplikowane\Posegregowane\" : @"Musesort\Muzyka\Posegregowane\";

if (!(kategorie.Length == 1 && kategorie[0] == "alfabetycznie")) //Jeśli jedyną kategorią jest "alfabetycznie, ścieżka z danych zwróci puste nawet przy poprawnie wypełnionych danych
{
var sciezkaZDanych =
dane.sciezkaKataloguZPol(
kategorie.SkipWhile(kategoria => kategoria.Equals("alfabetycznie")).ToArray());

if (string.IsNullOrEmpty(sciezkaZDanych))
{
pobierzTagiZNazwy(); //pobierz tagi i spróbuj ponownie
pobierzTagiZeSciezki();
sciezkaZDanych = dane.sciezkaKataloguZPol(
kategorie.SkipWhile(kategoria => kategoria.Equals("alfabetycznie")).ToArray());
if (string.IsNullOrEmpty(sciezkaZDanych)) //przenieś do "Nieprzydzielone
{
sciezkaKatalogu = duplikat
? @"Musesort\Muzyka\Zduplikowane\Posegregowane\Nieprzydzielone"
: @"Musesort\Muzyka\Posegregowane\Nieprzydzielone";
}
else
sciezkaKatalogu += sciezkaZDanych;
}
else
sciezkaKatalogu += sciezkaZDanych;
}

if (kategorie.Last() == "alfabetycznie")
sciezkaKatalogu += dane.tytul.Substring(0, 1);

if (duplikat && File.Exists(Path.Combine(sciezkaKatalogu, Path.GetFileName(Sciezka))))
{
var fullpath = Path.Combine(sciezkaKatalogu, Nazwa);
int i;
for (i = 1; File.Exists(fullpath); )
{
i++;
fullpath = Path.Combine(sciezkaKatalogu + Convert.ToString(i), Nazwa);
}
sciezkaKatalogu += Convert.ToString(i);
}

return sciezkaKatalogu;
}

#endregion
Expand Down
Binary file modified nowaWersja/MuseSortTesting/FakesAssemblies/MuseSort.Fakes.dll
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : w
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate stub for MuseSort.Properties.Resources: type is not visible to exported or assembly(MuseSort.Fakes).
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate stub for MuseSort.Properties.Settings: type is sealed.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate stub for <>f__AnonymousType0`2: type is sealed.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate stub for <PrivateImplementationDetails>{841F0F9F-3BD5-418B-9756-201350837DCE}: type is not supported because of internal limitations.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate stub for <PrivateImplementationDetails>{093F3714-E6DB-4A9C-AC3B-37E076B01D73}: type is not supported because of internal limitations.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for MuseSort.BazaDanychMuzyka: type is an interface.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for MuseSort.IBazaDanych: type is an interface.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for MuseSort.WierszTabeli+SchemaInfo: type is not visible to exported or assembly(MuseSort.Fakes).
Expand All @@ -20,4 +20,4 @@ C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : w
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for MuseSort.Properties.Resources: type is not visible to exported or assembly(MuseSort.Fakes).
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for MuseSort.Properties.Settings: type is not visible to exported or assembly(MuseSort.Fakes).
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for <>f__AnonymousType0`2: type is not supported because of internal limitations.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for <PrivateImplementationDetails>{841F0F9F-3BD5-418B-9756-201350837DCE}: type is not supported because of internal limitations.
C:\Users\KrzysztofD\musesort\nowaWersja\MuseSortTesting\Fakes\MuseSort.fakes : warning : Cannot generate shim for <PrivateImplementationDetails>{093F3714-E6DB-4A9C-AC3B-37E076B01D73}: type is not supported because of internal limitations.
15 changes: 12 additions & 3 deletions nowaWersja/MuseSortTesting/FakesAssemblies/MuseSort.Fakes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1207,6 +1207,9 @@
<member name="P:MuseSort.Fakes.ShimFilm.generujNazwePlikuZTagow">
<summary>Sets the shim of Film.generujNazwePlikuZTagow()</summary>
</member>
<member name="P:MuseSort.Fakes.ShimFilm.normalizujString">
<summary>Sets the shim of Film.normalizuj(String x)</summary>
</member>
<member name="P:MuseSort.Fakes.ShimFilm.pobierzTagi">
<summary>Sets the shim of Film.pobierzTagi()</summary>
</member>
Expand Down Expand Up @@ -1252,6 +1255,9 @@
<member name="P:MuseSort.Fakes.ShimFilm.AllInstances.generujNazwePlikuZTagow">
<summary>Sets the shim of Film.generujNazwePlikuZTagow()</summary>
</member>
<member name="P:MuseSort.Fakes.ShimFilm.AllInstances.normalizujString">
<summary>Sets the shim of Film.normalizuj(String x)</summary>
</member>
<member name="P:MuseSort.Fakes.ShimFilm.AllInstances.pobierzTagi">
<summary>Sets the shim of Film.pobierzTagi()</summary>
</member>
Expand Down Expand Up @@ -2500,9 +2506,6 @@
<member name="P:MuseSort.Fakes.ShimUtwor.Behavior">
<summary>Assigns the behavior for all methods of the shimmed type</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.CheckEmptyStringArray">
<summary>Sets the shim of Utwor.CheckEmpty(String[] toCheck)</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.ConstructorString">
<summary>Sets the shim of Utwor.Utwor(String path)</summary>
</member>
Expand Down Expand Up @@ -2539,6 +2542,9 @@
<member name="P:MuseSort.Fakes.ShimUtwor.generujNazwePlikuZTagow">
<summary>Sets the shim of Utwor.generujNazwePlikuZTagow()</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.normalizujString">
<summary>Sets the shim of Utwor.normalizuj(String x)</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.pobierzTagi">
<summary>Sets the shim of Utwor.pobierzTagi()</summary>
</member>
Expand Down Expand Up @@ -2578,6 +2584,9 @@
<member name="P:MuseSort.Fakes.ShimUtwor.AllInstances.generujNazwePlikuZTagow">
<summary>Sets the shim of Utwor.generujNazwePlikuZTagow()</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.AllInstances.normalizujString">
<summary>Sets the shim of Utwor.normalizuj(String x)</summary>
</member>
<member name="P:MuseSort.Fakes.ShimUtwor.AllInstances.pobierzTagi">
<summary>Sets the shim of Utwor.pobierzTagi()</summary>
</member>
Expand Down
Binary file removed nowaWersja/MuseSortTesting/MuseSortTesting.v11.suo
Binary file not shown.
84 changes: 76 additions & 8 deletions nowaWersja/MuseSortTesting/TestowanieSortowania.cs
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ public void SortujUtworyPobierzTagiZNazwy()
};
var rozszerzenia = UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio;
foreach (var utwor in expectedInList.Select(
sciezka => new Utwor(sciezka) {dane = {wykonawca = new[] {""}, tytul = "", numer = 0}}))
sciezka => new Utwor(sciezka) {dane = {wykonawca = new[] {""}, tytul = "", numer = 0}}))
{
utwor.zapiszTagi();
}
Expand All @@ -254,6 +254,7 @@ public void SortujUtworyPobierzTagiZNazwy()
TestSortowania(schemat, sciezkaTestowa, rozszerzenia, expectedInList, dane);
}
}

[TestMethod]
public void SortujUtworyPobierzTagiZeSciezki()
{
Expand Down Expand Up @@ -321,22 +322,33 @@ public void SortujUtworyPobierzTagiZeSciezki()
private static void TestSortowania(string schemat, string sciezkaTestowa, List<string> rozszerzenia, List<string> expectedInList,
IList<DaneUtworu> dane)
{
Console.WriteLine("\n\nTestujemy schematem: {0}\n\n", schemat);
PrzeprowadzSortowanie(schemat, sciezkaTestowa, rozszerzenia, expectedInList);

if (Directory.Exists(sciezkaTestowa + "\\Musesort"))
Directory.Delete(sciezkaTestowa + "\\Musesort", true);
var expectedOutList = ExpectedOutList(schemat, sciezkaTestowa, expectedInList, dane);

CheckInList(Folder.znajdz_wspierane_pliki(sciezkaTestowa, rozszerzenia), expectedInList);
CheckOutput(sciezkaTestowa, expectedOutList, rozszerzenia);
}

private static List<string> ExpectedOutList(string schemat, string sciezkaTestowa, List<string> expectedInList, IList<DaneUtworu> dane)
{
var expectedOutList = expectedInList.Select(
(path, i) => Path.Combine(sciezkaTestowa,
@"Musesort\Muzyka\Posegregowane",
SciezkaKataloguZPol(schemat, dane[i]),
Path.GetFileName(path))).ToList();
return expectedOutList;
}

CreateTestFolder(sciezkaTestowa, schemat).sortuj(rozszerzenia);
private static void PrzeprowadzSortowanie(string schemat, string sciezkaTestowa, List<string> rozszerzenia, List<string> expectedInList)
{
Console.WriteLine("\n\nTestujemy schematem: {0}\n\n", schemat);

CheckOutput(sciezkaTestowa, expectedOutList, rozszerzenia);
if (Directory.Exists(sciezkaTestowa + "\\Musesort"))
Directory.Delete(sciezkaTestowa + "\\Musesort", true);

CheckInList(Folder.znajdz_wspierane_pliki(sciezkaTestowa, rozszerzenia), expectedInList);

CreateTestFolder(sciezkaTestowa, schemat).sortuj(rozszerzenia);
}

private static string SciezkaKataloguZPol(string schemat, DaneUtworu dane)
Expand Down Expand Up @@ -373,6 +385,62 @@ private static string SciezkaKataloguZPol(string schemat, DaneUtworu dane)
}


#endregion

#region Przenoszenie muzyki

[TestMethod]
public void TestPrzenoszenia()
{
const string schemat = @"Wykonawca\Album\Piosenki";
var folderDocelowy = Path.Combine(_sciezkaMuzyka, @"test przenoszenia\folder docelowy");
var folderZrodlowy = Path.Combine(_sciezkaMuzyka, @"test przenoszenia\folder zrodlowy");
var rozszerzenia = UstawieniaProgramu.getInstance().wspieraneRozszerzeniaAudio;
var expectedInList1 = new List<string>
{
"01.QDC - Belief",
"04 - Muse - Map Of The Problematique",
"07 Kristin Chenoweth-Popular"
};
expectedInList1 = expectedInList1.Select(file => Path.Combine(folderDocelowy, file + ".mp3")).ToList();
var dane1 = new[]
{
new DaneUtworu
{
tytul = "Belief",
wykonawca = new[] {"Łukasz Brzostek (QDC)"},
album = "Alchemist",
rok = 2003,
gatunek = new[]{ "Ethnic"}
},
new DaneUtworu
{
tytul = "Map Of The Problematique",
wykonawca = new[] {"Muse"},
album = "Black Holes And Revelations",
gatunek = new[]{"Rock"}
},
new DaneUtworu
{
tytul = "Popular",
wykonawca = new[] {"Kristin Chenoweth"},
album = "Wicked Soundtrack",
gatunek = new[]{"24"}
},
};
var expectedInList2 = new List<string>(expectedInList1);
expectedInList2.AddRange(ExpectedOutList(schemat, folderDocelowy, expectedInList1, dane1));



using (ShimsContext.Create())
{
UniversalShims();
PrzeprowadzSortowanie(schemat, folderDocelowy, rozszerzenia, expectedInList1);
CreateTestFolder(folderDocelowy, schemat).dodajIPosortujFolder(folderZrodlowy, rozszerzenia);
}
}

#endregion

#region Sortowanie filmow
Expand Down Expand Up @@ -436,7 +504,7 @@ public void SortujFilmyTest2()

expectedInList.Add(sciezkaTestowa + @"\ROSA (HD) Epic AWARD Winning Matrix style Fantasy Action Ani.mp4");
expectedOutList.Add(string.Format("{0}\\Musesort\\Filmy\\Posegregowane\\{1}\\{2}\\{3}",
sciezkaTestowa, "MadArtistPublishing", "Rosa",
sciezkaTestowa, "Madartistpublishing", "Rosa",
"ROSA (HD) Epic AWARD Winning Matrix style Fantasy Action Ani.mp4"));

expectedInList.Add(sciezkaTestowa + @"\RUIN.mp4");
Expand Down

0 comments on commit 8b3bd98

Please sign in to comment.