From e0116145705ce01e2522677bc212ef7b53e40375 Mon Sep 17 00:00:00 2001 From: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> Date: Sat, 27 Mar 2021 17:39:44 -0500 Subject: [PATCH] Update parser tests to be generic closes #5889 --- .../ParserTests/CrapParserFixture.cs | 4 +- .../ParserTests/EditionParserFixture.cs | 56 +-- .../ParserTests/ExtendedQualityParserRegex.cs | 69 ++-- .../ParserTests/HashedReleaseFixture.cs | 32 +- .../ParserTests/LanguageParserFixture.cs | 104 +++--- .../ParserTests/ParserFixture.cs | 104 +++--- .../ParsingServiceTests/GetMovieFixture.cs | 6 +- .../ParseQualityDefinitionFixture.cs | 30 +- .../ParserTests/PathParserFixture.cs | 39 --- .../ParserTests/QualityParserFixture.cs | 330 +++++++++--------- .../ParserTests/ReleaseGroupParserFixture.cs | 165 +++++---- .../ParserTests/SceneCheckerFixture.cs | 21 +- 12 files changed, 454 insertions(+), 506 deletions(-) delete mode 100644 src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs diff --git a/src/NzbDrone.Core.Test/ParserTests/CrapParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/CrapParserFixture.cs index 64a5724ca..4f1470810 100644 --- a/src/NzbDrone.Core.Test/ParserTests/CrapParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/CrapParserFixture.cs @@ -89,13 +89,13 @@ namespace NzbDrone.Core.Test.ParserTests success.Should().Be(repetitions); } - [TestCase("thebiggestloser1618finale")] + [TestCase("thebiggestmovie1618finale")] public void should_not_parse_file_name_without_proper_spacing(string fileName) { Parser.Parser.ParseMovieTitle(fileName).Should().BeNull(); } - [TestCase("Big Forest (S01E18) Complete 360p HDTV AAC H.264-NEXT")] + [TestCase("Big Movie (S01E18) Complete 360p HDTV AAC H.264-NEXT")] public void should_not_parse_invalid_release_name(string fileName) { Parser.Parser.ParseMovieTitle(fileName).Should().BeNull(); diff --git a/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs index 1500c5aec..96c13807a 100644 --- a/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/EditionParserFixture.cs @@ -7,35 +7,35 @@ namespace NzbDrone.Core.Test.ParserTests [TestFixture] public class EditionParserFixture : CoreTest { - [TestCase("Prometheus 2012 Directors Cut", "Directors Cut")] - [TestCase("Star Wars Episode IV - A New Hope 1999 (Despecialized).mkv", "Despecialized")] - [TestCase("Prometheus.2012.(Special.Edition.Remastered).[Bluray-1080p].mkv", "Special Edition Remastered")] - [TestCase("Prometheus 2012 Extended", "Extended")] - [TestCase("Prometheus 2012 Extended Directors Cut Fan Edit", "Extended Directors Cut Fan Edit")] - [TestCase("Prometheus 2012 Director's Cut", "Director's Cut")] - [TestCase("Prometheus 2012 Directors Cut", "Directors Cut")] - [TestCase("Prometheus.2012.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf", "Extended Theatrical Version IMAX")] - [TestCase("2001 A Space Odyssey (1968) Director's Cut .mkv", "Director's Cut")] - [TestCase("2001: A Space Odyssey 1968 (Extended Directors Cut FanEdit)", "Extended Directors Cut FanEdit")] + [TestCase("Movie Title 2012 Directors Cut", "Directors Cut")] + [TestCase("Movie Title 1999 (Despecialized).mkv", "Despecialized")] + [TestCase("Movie Title.2012.(Special.Edition.Remastered).[Bluray-1080p].mkv", "Special Edition Remastered")] + [TestCase("Movie Title 2012 Extended", "Extended")] + [TestCase("Movie Title 2012 Extended Directors Cut Fan Edit", "Extended Directors Cut Fan Edit")] + [TestCase("Movie Title 2012 Director's Cut", "Director's Cut")] + [TestCase("Movie Title 2012 Directors Cut", "Directors Cut")] + [TestCase("Movie Title.2012.(Extended.Theatrical.Version.IMAX).BluRay.1080p.2012.asdf", "Extended Theatrical Version IMAX")] + [TestCase("2021 A Movie (1968) Director's Cut .mkv", "Director's Cut")] + [TestCase("2021 A Movie 1968 (Extended Directors Cut FanEdit)", "Extended Directors Cut FanEdit")] [TestCase("A Fake Movie 2035 2012 Directors.mkv", "Directors")] - [TestCase("Blade Runner 2049 Director's Cut.mkv", "Director's Cut")] - [TestCase("Prometheus 2012 50th Anniversary Edition.mkv", "50th Anniversary Edition")] + [TestCase("Movie 2049 Director's Cut.mkv", "Director's Cut")] + [TestCase("Movie Title 2012 50th Anniversary Edition.mkv", "50th Anniversary Edition")] [TestCase("Movie 2012 2in1.mkv", "2in1")] [TestCase("Movie 2012 IMAX.mkv", "IMAX")] [TestCase("Movie 2012 Restored.mkv", "Restored")] - [TestCase("Prometheus.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g", "Special Edition Fan Edit")] - [TestCase("Star Wars Episode IV - A New Hope (Despecialized) 1999.mkv", "Despecialized")] - [TestCase("Prometheus.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv", "Special Edition Remastered")] - [TestCase("Prometheus Extended 2012", "Extended")] - [TestCase("Prometheus Extended Directors Cut Fan Edit 2012", "Extended Directors Cut Fan Edit")] - [TestCase("Prometheus Director's Cut 2012", "Director's Cut")] - [TestCase("Prometheus Directors Cut 2012", "Directors Cut")] - [TestCase("Prometheus.(Extended.Theatrical.Version.IMAX).2012.BluRay.1080p.asdf", "Extended Theatrical Version IMAX")] - [TestCase("2001 A Space Odyssey Director's Cut (1968).mkv", "Director's Cut")] - [TestCase("2001: A Space Odyssey (Extended Directors Cut FanEdit) 1968 Bluray 1080p", "Extended Directors Cut FanEdit")] + [TestCase("Movie Title.Special.Edition.Fan Edit.2012..BRRip.x264.AAC-m2g", "Special Edition Fan Edit")] + [TestCase("Movie Title (Despecialized) 1999.mkv", "Despecialized")] + [TestCase("Movie Title.(Special.Edition.Remastered).2012.[Bluray-1080p].mkv", "Special Edition Remastered")] + [TestCase("Movie Title Extended 2012", "Extended")] + [TestCase("Movie Title Extended Directors Cut Fan Edit 2012", "Extended Directors Cut Fan Edit")] + [TestCase("Movie Title Director's Cut 2012", "Director's Cut")] + [TestCase("Movie Title Directors Cut 2012", "Directors Cut")] + [TestCase("Movie Title.(Extended.Theatrical.Version.IMAX).2012.BluRay.1080p.asdf", "Extended Theatrical Version IMAX")] + [TestCase("Movie Director's Cut (1968).mkv", "Director's Cut")] + [TestCase("2021 A Movie (Extended Directors Cut FanEdit) 1968 Bluray 1080p", "Extended Directors Cut FanEdit")] [TestCase("A Fake Movie 2035 Directors 2012.mkv", "Directors")] - [TestCase("Blade Runner Director's Cut 2049.mkv", "Director's Cut")] - [TestCase("Prometheus 50th Anniversary Edition 2012.mkv", "50th Anniversary Edition")] + [TestCase("Movie Director's Cut 2049.mkv", "Director's Cut")] + [TestCase("Movie Title 50th Anniversary Edition 2012.mkv", "50th Anniversary Edition")] [TestCase("Movie 2in1 2012.mkv", "2in1")] [TestCase("Movie IMAX 2012.mkv", "IMAX")] [TestCase("Fake Movie Final Cut 2016", "Final Cut")] @@ -50,11 +50,11 @@ namespace NzbDrone.Core.Test.ParserTests parsed.Edition.Should().Be(edition); } - [TestCase("Star.Wars.Holiday.Special.1978.DVD.REMUX.DD.2.0-ViETNAM")] + [TestCase("Movie.Holiday.Special.1978.DVD.REMUX.DD.2.0-ViETNAM")] [TestCase("Directors.Cut.German.2006.COMPLETE.PAL.DVDR-LoD")] - [TestCase("Mission Impossible: Rogue Nation 2012 Bluray")] - [TestCase("Loving.Pablo.2018.TS.FRENCH.MD.x264-DROGUERiE")] - [TestCase("Uncut.Gems.2019.720p.BluRay.x264-YOL0W")] + [TestCase("Movie Impossible: Rogue Movie 2012 Bluray")] + [TestCase("Loving.Movie.2018.TS.FRENCH.MD.x264-DROGUERiE")] + [TestCase("Uncut.Movie.2019.720p.BluRay.x264-YOL0W")] public void should_not_parse_edition(string postTitle) { var parsed = Parser.Parser.ParseMovieTitle(postTitle); diff --git a/src/NzbDrone.Core.Test/ParserTests/ExtendedQualityParserRegex.cs b/src/NzbDrone.Core.Test/ParserTests/ExtendedQualityParserRegex.cs index 7f9645393..88e3f6fc9 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ExtendedQualityParserRegex.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ExtendedQualityParserRegex.cs @@ -1,4 +1,4 @@ -using FluentAssertions; +using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Parser; using NzbDrone.Core.Test.Framework; @@ -13,53 +13,46 @@ namespace NzbDrone.Core.Test.ParserTests { } - [TestCase("Chuck.S04E05.HDTV.XviD-LOL", 0)] - [TestCase("Gold.Rush.S04E05.Garnets.or.Gold.REAL.REAL.PROPER.HDTV.x264-W4F", 2)] - [TestCase("Chuck.S03E17.REAL.PROPER.720p.HDTV.x264-ORENJI-RP", 1)] - [TestCase("Covert.Affairs.S05E09.REAL.PROPER.HDTV.x264-KILLERS", 1)] - [TestCase("Mythbusters.S14E01.REAL.PROPER.720p.HDTV.x264-KILLERS", 1)] - [TestCase("Orange.Is.the.New.Black.s02e06.real.proper.720p.webrip.x264-2hd", 0)] - [TestCase("Top.Gear.S21E07.Super.Duper.Real.Proper.HDTV.x264-FTP", 0)] - [TestCase("Top.Gear.S21E07.PROPER.HDTV.x264-RiVER-RP", 0)] - [TestCase("House.S07E11.PROPER.REAL.RERIP.1080p.BluRay.x264-TENEIGHTY", 1)] - [TestCase("[MGS] - Kuragehime - Episode 02v2 - [D8B6C90D]", 0)] - [TestCase("[Hatsuyuki] Tokyo Ghoul - 07 [v2][848x480][23D8F455].avi", 0)] - [TestCase("[DeadFish] Barakamon - 01v3 [720p][AAC]", 0)] - [TestCase("[DeadFish] Momo Kyun Sword - 01v4 [720p][AAC]", 0)] - [TestCase("The Real Housewives of Some Place - S01E01 - Why are we doing this?", 0)] + [TestCase("Movie.Title.HDTV.XviD-LOL", 0)] + [TestCase("Movie.Title.Garnets.or.Gold.REAL.REAL.PROPER.HDTV.x264-W4F", 2)] + [TestCase("Movie.Title.REAL.PROPER.720p.HDTV.x264-ORENJI-RP", 1)] + [TestCase("Movie.Title.REAL.PROPER.HDTV.x264-KILLERS", 1)] + [TestCase("Movie.Title.REAL.PROPER.720p.HDTV.x264-KILLERS", 1)] + [TestCase("Movie.Title.New.Black.real.proper.720p.webrip.x264-2hd", 0)] + [TestCase("Movie.Title.Super.Duper.Real.Proper.HDTV.x264-FTP", 0)] + [TestCase("Movie.Title.PROPER.HDTV.x264-RiVER-RP", 0)] + [TestCase("Movie.Title.PROPER.REAL.RERIP.1080p.BluRay.x264-TENEIGHTY", 1)] + [TestCase("[MGS] - Movie.Title - Episode 02v2 - [D8B6C90D]", 0)] + [TestCase("[Hatsuyuki] Movie Title - 07 [v2][848x480][23D8F455].avi", 0)] + [TestCase("[DeadFish] Movie Title - 01v3 [720p][AAC]", 0)] + [TestCase("[DeadFish] Movie Title Sword - 01v4 [720p][AAC]", 0)] + [TestCase("The Real Movie.Titlewives of Some Place - S01E01 - Why are we doing this?", 0)] public void should_parse_reality_from_title(string title, int reality) { QualityParser.ParseQuality(title).Revision.Real.Should().Be(reality); } - [TestCase("Chuck.S04E05.HDTV.XviD-LOL", 1)] - [TestCase("Gold.Rush.S04E05.Garnets.or.Gold.REAL.REAL.PROPER.HDTV.x264-W4F", 2)] - [TestCase("Chuck.S03E17.REAL.PROPER.720p.HDTV.x264-ORENJI-RP", 2)] - [TestCase("Covert.Affairs.S05E09.REAL.PROPER.HDTV.x264-KILLERS", 2)] - [TestCase("Mythbusters.S14E01.REAL.PROPER.720p.HDTV.x264-KILLERS", 2)] - [TestCase("Orange.Is.the.New.Black.s02e06.real.proper.720p.webrip.x264-2hd", 2)] - [TestCase("Top.Gear.S21E07.Super.Duper.Real.Proper.HDTV.x264-FTP", 2)] - [TestCase("Top.Gear.S21E07.PROPER.HDTV.x264-RiVER-RP", 2)] - [TestCase("House.S07E11.PROPER.REAL.RERIP.1080p.BluRay.x264-TENEIGHTY", 2)] - [TestCase("[MGS] - Kuragehime - Episode 02v2 - [D8B6C90D]", 2)] - [TestCase("[Hatsuyuki] Tokyo Ghoul - 07 [v2][848x480][23D8F455].avi", 2)] - [TestCase("[DeadFish] Barakamon - 01v3 [720p][AAC]", 3)] - [TestCase("[DeadFish] Momo Kyun Sword - 01v4 [720p][AAC]", 4)] - [TestCase("[Vivid-Asenshi] Akame ga Kill - 04v2 [266EE983]", 2)] - [TestCase("[Vivid-Asenshi] Akame ga Kill - 03v2 [66A05817]", 2)] - [TestCase("[Vivid-Asenshi] Akame ga Kill - 02v2 [1F67AB55]", 2)] + [TestCase("Movie.Title.HDTV.XviD-LOL", 1)] + [TestCase("Movie.Title.Garnets.or.Gold.REAL.REAL.PROPER.HDTV.x264-W4F", 2)] + [TestCase("Movie.Title.REAL.PROPER.720p.HDTV.x264-ORENJI-RP", 2)] + [TestCase("Movie.Title.REAL.PROPER.HDTV.x264-KILLERS", 2)] + [TestCase("Movie.Title.REAL.PROPER.720p.HDTV.x264-KILLERS", 2)] + [TestCase("Movie.Title.New.Black.real.proper.720p.webrip.x264-2hd", 2)] + [TestCase("Movie.Title.Super.Duper.Real.Proper.HDTV.x264-FTP", 2)] + [TestCase("Movie.Title.PROPER.HDTV.x264-RiVER-RP", 2)] + [TestCase("Movie.Title.PROPER.REAL.RERIP.1080p.BluRay.x264-TENEIGHTY", 2)] public void should_parse_version_from_title(string title, int version) { QualityParser.ParseQuality(title).Revision.Version.Should().Be(version); } - [TestCase("Deadpool 2016 2160p 4K UltraHD BluRay DTS-HD MA 7 1 x264-Whatevs", 19)] - [TestCase("Deadpool 2016 2160p 4K UltraHD DTS-HD MA 7 1 x264-Whatevs", 16)] - [TestCase("Deadpool 2016 4K 2160p UltraHD BluRay AAC2 0 HEVC x265", 19)] - [TestCase("The Revenant 2015 2160p UHD BluRay DTS x264-Whatevs", 19)] - [TestCase("The Revenant 2015 2160p UHD BluRay FLAC 7 1 x264-Whatevs", 19)] - [TestCase("The Martian 2015 2160p Ultra HD BluRay DTS-HD MA 7 1 x264-Whatevs", 19)] - [TestCase("Into the Inferno 2016 2160p Netflix WEBRip DD5 1 x264-Whatevs", 18)] + [TestCase("Movie 2016 2160p 4K UltraHD BluRay DTS-HD MA 7 1 x264-Whatevs", 19)] + [TestCase("Movie 2016 2160p 4K UltraHD DTS-HD MA 7 1 x264-Whatevs", 16)] + [TestCase("Movie 2016 4K 2160p UltraHD BluRay AAC2 0 HEVC x265", 19)] + [TestCase("The Movie 2015 2160p UHD BluRay DTS x264-Whatevs", 19)] + [TestCase("The Movie 2015 2160p UHD BluRay FLAC 7 1 x264-Whatevs", 19)] + [TestCase("The Movie 2015 2160p Ultra HD BluRay DTS-HD MA 7 1 x264-Whatevs", 19)] + [TestCase("Into the Movie 2016 2160p Netflix WEBRip DD5 1 x264-Whatevs", 18)] public void should_parse_ultrahd_from_title(string title, int version) { var parsed = QualityParser.ParseQuality(title); diff --git a/src/NzbDrone.Core.Test/ParserTests/HashedReleaseFixture.cs b/src/NzbDrone.Core.Test/ParserTests/HashedReleaseFixture.cs index db05eb7cb..5deeebc53 100644 --- a/src/NzbDrone.Core.Test/ParserTests/HashedReleaseFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/HashedReleaseFixture.cs @@ -27,57 +27,57 @@ namespace NzbDrone.Core.Test.ParserTests }, new object[] { - @"C:\Test\Weeds.2018.DVDRip.XviD-RADARR\AHFMZXGHEWD660.mkv".AsOsAgnostic(), - "Weeds", + @"C:\Test\Movie.2018.DVDRip.XviD-RADARR\AHFMZXGHEWD660.mkv".AsOsAgnostic(), + "Movie", Quality.DVD, "RADARR" }, new object[] { - @"C:\Test\Deadwood.2018.1080p.BluRay.x264-RADARR\Backup_72023S02-12.mkv".AsOsAgnostic(), - "Deadwood", + @"C:\Test\Movie.2018.1080p.BluRay.x264-RADARR\Backup_72023S02-12.mkv".AsOsAgnostic(), + "Movie", Quality.Bluray1080p, "RADARR" }, new object[] { - @"C:\Test\Deadwood.2018.1080p.BluRay.x264\Backup_72023S02-12.mkv".AsOsAgnostic(), - "Deadwood", + @"C:\Test\Movie.2018.1080p.BluRay.x264\Backup_72023S02-12.mkv".AsOsAgnostic(), + "Movie", Quality.Bluray1080p, null }, new object[] { - @"C:\Test\Grimm 2018 720p WEB-DL DD5 1 H 264-ECI\123.mkv".AsOsAgnostic(), - "Grimm", + @"C:\Test\Movie 2018 720p WEB-DL DD5 1 H 264-ECI\123.mkv".AsOsAgnostic(), + "Movie", Quality.WEBDL720p, "ECI" }, new object[] { - @"C:\Test\Grimm 2018 720p WEB-DL DD5 1 H 264-ECI\abc.mkv".AsOsAgnostic(), - "Grimm", + @"C:\Test\Movie 2018 720p WEB-DL DD5 1 H 264-ECI\abc.mkv".AsOsAgnostic(), + "Movie", Quality.WEBDL720p, "ECI" }, new object[] { - @"C:\Test\Grimm 2018 720p WEB-DL DD5 1 H 264-ECI\b00bs.mkv".AsOsAgnostic(), - "Grimm", + @"C:\Test\Movie 2018 720p WEB-DL DD5 1 H 264-ECI\b00bs.mkv".AsOsAgnostic(), + "Movie", Quality.WEBDL720p, "ECI" }, new object[] { - @"C:\Test\The.Good.Wife.2018.720p.HDTV.x264-NZBgeek/cgajsofuejsa501.mkv".AsOsAgnostic(), - "The Good Wife", + @"C:\Test\Movie.Title.2018.720p.HDTV.x264-NZBgeek/cgajsofuejsa501.mkv".AsOsAgnostic(), + "Movie Title", Quality.HDTV720p, "NZBgeek" }, new object[] { - @"C:\Test\Fargo.2018.1080p.WEB-DL.DD5.1.H264-RARBG\170424_26.mkv".AsOsAgnostic(), - "Fargo", + @"C:\Test\Movie.2018.1080p.WEB-DL.DD5.1.H264-RARBG\170424_26.mkv".AsOsAgnostic(), + "Movie", Quality.WEBDL1080p, "RARBG" }, diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 24b0acc00..3a0940d7d 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -9,7 +9,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestFixture] public class LanguageParserFixture : CoreTest { - [TestCase("Pulp.Fiction.1994.English.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.English.1080p.XviD-LOL")] public void should_parse_language_english(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -17,8 +17,8 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.English); } - [TestCase("The Danish Girl 2015")] - [TestCase("Fantastic.Beasts.The.Crimes.Of.Grindelwald.2018.2160p.WEBRip.x265.10bit.HDR.DD5.1-GASMASK")] + [TestCase("The Danish Movie 2015")] + [TestCase("Movie.Title.2018.2160p.WEBRip.x265.10bit.HDR.DD5.1-GASMASK")] public void should_parse_language_unknown(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -26,7 +26,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Unknown); } - [TestCase("Pulp.Fiction.1994.French.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.French.1080p.XviD-LOL")] public void should_parse_language_french(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -34,7 +34,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.French); } - [TestCase("E.T. the Extra-Terrestrial.1982.Ger.Eng.AC3.DL.BDRip.x264-iNCEPTiON")] + [TestCase("Movie.Title.1982.Ger.Eng.AC3.DL.BDRip.x264-iNCEPTiON")] public void should_parse_language_english_german(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -43,7 +43,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().Contain(Language.English); } - [TestCase("Pulp.Fiction.1994.Spanish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Spanish.1080p.XviD-LOL")] public void should_parse_language_spanish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Spanish); } - [TestCase("Pulp.Fiction.1994.German.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.German.1080p.XviD-LOL")] public void should_parse_language_german(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -59,7 +59,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.German); } - [TestCase("Pulp.Fiction.1994.Italian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Italian.1080p.XviD-LOL")] public void should_parse_language_italian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Italian); } - [TestCase("Pulp.Fiction.1994.Danish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Danish.1080p.XviD-LOL")] public void should_parse_language_danish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -75,7 +75,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Danish); } - [TestCase("Pulp.Fiction.1994.Dutch.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Dutch.1080p.XviD-LOL")] public void should_parse_language_dutch(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -83,7 +83,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Dutch); } - [TestCase("Pulp.Fiction.1994.Japanese.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Japanese.1080p.XviD-LOL")] public void should_parse_language_japanese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -91,7 +91,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Japanese); } - [TestCase("Pulp.Fiction.1994.Icelandic.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Icelandic.1080p.XviD-LOL")] public void should_parse_language_icelandic(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -99,7 +99,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Icelandic); } - [TestCase("Pulp.Fiction.1994.Chinese.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Chinese.1080p.XviD-LOL")] public void should_parse_language_chinese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -107,7 +107,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Chinese); } - [TestCase("Pulp.Fiction.1994.Russian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Russian.1080p.XviD-LOL")] public void should_parse_language_russian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -115,7 +115,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Russian); } - [TestCase("Pulp.Fiction.1994.Romanian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Romanian.1080p.XviD-LOL")] public void should_parse_language_romanian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -123,7 +123,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Romanian); } - [TestCase("Pulp.Fiction.1994.Hindi.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Hindi.1080p.XviD-LOL")] public void should_parse_language_hindi(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -131,7 +131,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Hindi); } - [TestCase("Pulp.Fiction.1994.Thai.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Thai.1080p.XviD-LOL")] public void should_parse_language_thai(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -139,8 +139,8 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Thai); } - [TestCase("Pulp.Fiction.1994.Bulgarian.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.BGAUDIO.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Bulgarian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.BGAUDIO.1080p.XviD-LOL")] public void should_parse_language_bulgarian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -148,8 +148,8 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Bulgarian); } - [TestCase("Pulp.Fiction.1994.Dublado.1080p.XviD-LOL")] - [TestCase("Uma.Aventura.Lego.2.2019.1080p.Bluray.Dublado.WWW.TPF.GRATIS")] + [TestCase("Movie.Title.1994.Dublado.1080p.XviD-LOL")] + [TestCase("Movie.Title.2.2019.1080p.Bluray.Dublado.WWW.TPF.GRATIS")] public void should_parse_language_brazilian_portuguese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -157,15 +157,15 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.PortugueseBR); } - [TestCase("Pulp.Fiction.1994.Polish.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PL.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PLDUB.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.DUBPL.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PL-DUB.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.DUB-PL.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PLLEK.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.LEKPL.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PL-LEK.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Polish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PL.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PLDUB.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.DUBPL.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PL-DUB.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.DUB-PL.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PLLEK.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.LEKPL.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PL-LEK.1080p.XviD-LOL")] public void should_parse_language_polish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -173,9 +173,9 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Polish); } - [TestCase("Pulp.Fiction.1994.PL-SUB.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.PLSUB.1080p.XviD-LOL")] - [TestCase("Pulp.Fiction.1994.SUB-PL.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PL-SUB.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.PLSUB.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.SUB-PL.1080p.XviD-LOL")] public void should_parse_language_polish_subbed(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -183,7 +183,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Unknown); } - [TestCase("Pulp.Fiction.1994.Vietnamese.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Vietnamese.1080p.XviD-LOL")] public void should_parse_language_vietnamese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -191,7 +191,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Vietnamese); } - [TestCase("Pulp.Fiction.1994.Swedish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Swedish.1080p.XviD-LOL")] public void should_parse_language_swedish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -199,7 +199,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Swedish); } - [TestCase("Pulp.Fiction.1994.Norwegian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Norwegian.1080p.XviD-LOL")] public void should_parse_language_norwegian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -207,7 +207,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Norwegian); } - [TestCase("Pulp.Fiction.1994.Finnish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Finnish.1080p.XviD-LOL")] public void should_parse_language_finnish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -215,7 +215,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Finnish); } - [TestCase("Pulp.Fiction.1994.Turkish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Turkish.1080p.XviD-LOL")] public void should_parse_language_turkish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -223,7 +223,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Turkish); } - [TestCase("Pulp.Fiction.1994.Portuguese.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Portuguese.1080p.XviD-LOL")] public void should_parse_language_portuguese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -231,7 +231,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Portuguese); } - [TestCase("Pulp.Fiction.1994.Flemish.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Flemish.1080p.XviD-LOL")] public void should_parse_language_flemish(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -239,7 +239,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Flemish); } - [TestCase("Pulp.Fiction.1994.Greek.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Greek.1080p.XviD-LOL")] public void should_parse_language_greek(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -247,7 +247,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Greek); } - [TestCase("Pulp.Fiction.1994.Korean.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Korean.1080p.XviD-LOL")] public void should_parse_language_korean(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -255,7 +255,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Korean); } - [TestCase("Pulp.Fiction.1994.Hungarian.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Hungarian.1080p.XviD-LOL")] public void should_parse_language_hungarian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -263,7 +263,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Hungarian); } - [TestCase("Pulp.Fiction.1994.Hebrew.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.Hebrew.1080p.XviD-LOL")] public void should_parse_language_hebrew(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -271,7 +271,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Hebrew); } - [TestCase("Pulp.Fiction.1994.AC3.LT.EN-CNN")] + [TestCase("Movie.Title.1994.AC3.LT.EN-CNN")] public void should_parse_language_lithuanian(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -279,7 +279,7 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Lithuanian); } - [TestCase("Pulp.Fiction.1994.CZ.1080p.XviD-LOL")] + [TestCase("Movie.Title.1994.CZ.1080p.XviD-LOL")] public void should_parse_language_czech(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -287,24 +287,24 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Czech); } - [TestCase("Mosul.2019.ARABIC.WEBRip.x264-VXT")] + [TestCase("Movie.Title.2019.ARABIC.WEBRip.x264-VXT")] public void should_parse_language_arabic(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle); result.Languages.Should().BeEquivalentTo(Language.Arabic); } - [TestCase("Pulp Fiction.en.sub")] - [TestCase("Pulp Fiction.eng.sub")] - [TestCase("Pulp.Fiction.eng.forced.sub")] - [TestCase("Pulp-Fiction-eng-forced.sub")] + [TestCase("Movie.Title.en.sub")] + [TestCase("Movie Title.eng.sub")] + [TestCase("Movie.Title.eng.forced.sub")] + [TestCase("Movie-Title-eng-forced.sub")] public void should_parse_subtitle_language(string fileName) { var result = LanguageParser.ParseSubtitleLanguage(fileName); result.Should().Be(Language.English); } - [TestCase("Pulp Fiction.sub")] + [TestCase("Movie Title.sub")] public void should_parse_subtitle_language_unknown(string fileName) { var result = LanguageParser.ParseSubtitleLanguage(fileName); diff --git a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs index effb96cca..c33009fd8 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs @@ -33,61 +33,61 @@ namespace NzbDrone.Core.Test.ParserTests title.CleanMovieTitle().Should().Be("carnivale"); } - [TestCase("The.Man.from.U.N.C.L.E.2015.1080p.BluRay.x264-SPARKS", "The Man from U.N.C.L.E.")] - [TestCase("1941.1979.EXTENDED.720p.BluRay.X264-AMIABLE", "1941")] + [TestCase("The.Movie.from.U.N.C.L.E.2015.1080p.BluRay.x264-SPARKS", "The Movie from U.N.C.L.E.")] + [TestCase("1776.1979.EXTENDED.720p.BluRay.X264-AMIABLE", "1776")] [TestCase("MY MOVIE (2016) [R][Action, Horror][720p.WEB-DL.AVC.8Bit.6ch.AC3].mkv", "MY MOVIE")] [TestCase("R.I.P.D.2013.720p.BluRay.x264-SPARKS", "R.I.P.D.")] [TestCase("V.H.S.2.2013.LIMITED.720p.BluRay.x264-GECKOS", "V.H.S. 2")] [TestCase("This Is A Movie (1999) [IMDB #] {ACTORS} !DIRECTOR +MORE_SILLY_STUFF_NO_ONE_NEEDS ?", "This Is A Movie")] - [TestCase("We Are the Best!.2013.720p.H264.mkv", "We Are the Best!")] - [TestCase("(500).Days.Of.Summer.(2009).DTS.1080p.BluRay.x264.NLsubs", "(500) Days Of Summer")] - [TestCase("To.Live.and.Die.in.L.A.1985.1080p.BluRay", "To Live and Die in L.A.")] - [TestCase("A.I.Artificial.Intelligence.(2001)", "A.I. Artificial Intelligence")] + [TestCase("We Are the Movie!.2013.720p.H264.mkv", "We Are the Movie!")] + [TestCase("(500).Days.Of.Movie.(2009).DTS.1080p.BluRay.x264.NLsubs", "(500) Days Of Movie")] + [TestCase("To.Live.and.Movie.in.L.A.1985.1080p.BluRay", "To Live and Movie in L.A.")] + [TestCase("A.I.Artificial.Movie.(2001)", "A.I. Artificial Movie")] [TestCase("A.Movie.Name.(1998)", "A Movie Name")] - [TestCase("www.Torrenting.com - Revenge.2008.720p.X264-DIMENSION", "Revenge")] - [TestCase("Thor: The Dark World 2013", "Thor The Dark World")] - [TestCase("Resident.Evil.The.Final.Chapter.2016", "Resident Evil The Final Chapter")] - [TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", "Der Soldat James")] - [TestCase("Passengers.German.DL.AC3.Dubbed..BluRay.x264-PsO", "Passengers")] - [TestCase("Valana la Legende FRENCH BluRay 720p 2016 kjhlj", "Valana la Legende")] - [TestCase("Valana la Legende TRUEFRENCH BluRay 720p 2016 kjhlj", "Valana la Legende")] - [TestCase("Mission Impossible: Rogue Nation (2015)�[XviD - Ita Ac3 - SoftSub Ita]azione, spionaggio, thriller *Prima Visione* Team mulnic Tom Cruise", "Mission Impossible Rogue Nation")] - [TestCase("Scary.Movie.2000.FRENCH..BluRay.-AiRLiNE", "Scary Movie")] + [TestCase("www.Torrenting.com - Movie.2008.720p.X264-DIMENSION", "Movie")] + [TestCase("Movie: The Movie World 2013", "Movie The Movie World")] + [TestCase("Movie.The.Final.Chapter.2016", "Movie The Final Chapter")] + [TestCase("Der.Movie.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", "Der Movie James")] + [TestCase("Movie.German.DL.AC3.Dubbed..BluRay.x264-PsO", "Movie")] + [TestCase("Valana la Movie FRENCH BluRay 720p 2016 kjhlj", "Valana la Movie")] + [TestCase("Valana la Movie TRUEFRENCH BluRay 720p 2016 kjhlj", "Valana la Movie")] + [TestCase("Mission Movie: Rogue Movie (2015)�[XviD - Ita Ac3 - SoftSub Ita]azione, spionaggio, thriller *Prima Visione* Team mulnic Tom Cruise", "Mission Movie Rogue Movie")] + [TestCase("Movie.Movie.2000.FRENCH..BluRay.-AiRLiNE", "Movie Movie")] [TestCase("My Movie 1999 German Bluray", "My Movie")] - [TestCase("Leaving Jeruselem by Railway (1897) [DVD].mp4", "Leaving Jeruselem by Railway")] - [TestCase("Climax.2018.1080p.AMZN.WEB-DL.DD5.1.H.264-NTG", "Climax")] + [TestCase("Leaving Movie by Movie (1897) [DVD].mp4", "Leaving Movie by Movie")] + [TestCase("Movie.2018.1080p.AMZN.WEB-DL.DD5.1.H.264-NTG", "Movie")] [TestCase("Movie.Title.Imax.2018.1080p.AMZN.WEB-DL.DD5.1.H.264-NTG", "Movie Title")] - [TestCase("World.War.Z.EXTENDED.2013.German.DL.1080p.BluRay.AVC-XANOR", "World War Z")] - [TestCase("World.War.Z.2.EXTENDED.2013.German.DL.1080p.BluRay.AVC-XANOR", "World War Z 2")] - [TestCase("G.I.Joe.Retaliation.2013.THEATRiCAL.COMPLETE.BLURAY-GLiMMER", "G.I. Joe Retaliation")] - [TestCase("www.Torrenting.org - Revenge.2008.720p.X264-DIMENSION", "Revenge")] + [TestCase("World.Movie.Z.EXTENDED.2013.German.DL.1080p.BluRay.AVC-XANOR", "World Movie Z")] + [TestCase("World.Movie.Z.2.EXTENDED.2013.German.DL.1080p.BluRay.AVC-XANOR", "World Movie Z 2")] + [TestCase("G.I.Movie.Movie.2013.THEATRiCAL.COMPLETE.BLURAY-GLiMMER", "G.I. Movie Movie")] + [TestCase("www.Torrenting.org - Movie.2008.720p.X264-DIMENSION", "Movie")] public void should_parse_movie_title(string postTitle, string title) { Parser.Parser.ParseMovieTitle(postTitle).MovieTitle.Should().Be(title); } - [TestCase("Avatar.Aufbruch.nach.Pandora.Extended.2009.German.DTS.720p.BluRay.x264-SoW", "Avatar Aufbruch nach Pandora", "Extended", 2009)] - [TestCase("Drop.Zone.1994.German.AC3D.DL.720p.BluRay.x264-KLASSiGERHD", "Drop Zone", "", 1994)] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate", "Kick Ass 2", "", 2013)] - [TestCase("Paradise.Hills.2019.German.DL.AC3.Dubbed.1080p.BluRay.x264-muhHD", "Paradise Hills", "", 2019)] - [TestCase("96.Hours.Taken.3.EXTENDED.2014.German.DL.1080p.BluRay.x264-ENCOUNTERS", "96 Hours Taken 3", "EXTENDED", 2014)] - [TestCase("World.War.Z.EXTENDED.CUT.2013.German.DL.1080p.BluRay.x264-HQX", "World War Z", "EXTENDED CUT", 2013)] - [TestCase("Sin.City.2005.RECUT.EXTENDED.German.DL.1080p.BluRay.x264-DETAiLS", "Sin City", "RECUT EXTENDED", 2005)] - [TestCase("2.Tage.in.L.A.1996.GERMAN.DL.720p.WEB.H264-SOV", "2 Tage in L.A.", "", 1996)] + [TestCase("Movie.Aufbruch.nach.Pandora.Extended.2009.German.DTS.720p.BluRay.x264-SoW", "Movie Aufbruch nach Pandora", "Extended", 2009)] + [TestCase("Drop.Movie.1994.German.AC3D.DL.720p.BluRay.x264-KLASSiGERHD", "Drop Movie", "", 1994)] + [TestCase("Kick.Movie.2.2013.German.DTS.DL.720p.BluRay.x264-Pate", "Kick Movie 2", "", 2013)] + [TestCase("Movie.Hills.2019.German.DL.AC3.Dubbed.1080p.BluRay.x264-muhHD", "Movie Hills", "", 2019)] + [TestCase("96.Hours.Movie.3.EXTENDED.2014.German.DL.1080p.BluRay.x264-ENCOUNTERS", "96 Hours Movie 3", "EXTENDED", 2014)] + [TestCase("Movie.War.Q.EXTENDED.CUT.2013.German.DL.1080p.BluRay.x264-HQX", "Movie War Q", "EXTENDED CUT", 2013)] + [TestCase("Sin.Movie.2005.RECUT.EXTENDED.German.DL.1080p.BluRay.x264-DETAiLS", "Sin Movie", "RECUT EXTENDED", 2005)] + [TestCase("2.Movie.in.L.A.1996.GERMAN.DL.720p.WEB.H264-SOV", "2 Movie in L.A.", "", 1996)] [TestCase("8.2019.GERMAN.720p.BluRay.x264-UNiVERSUM", "8", "", 2019)] - [TestCase("Life.Partners.2014.German.DL.PAL.DVDR-ETM", "Life Partners", "", 2014)] - [TestCase("Joe.Dreck.2.EXTENDED.EDITION.2015.German.DL.PAL.DVDR-ETM", "Joe Dreck 2", "EXTENDED EDITION", 2015)] - [TestCase("Rango.EXTENDED.2011.HDRip.AC3.German.XviD-POE", "Rango", "EXTENDED", 2011)] + [TestCase("Life.Movie.2014.German.DL.PAL.DVDR-ETM", "Life Movie", "", 2014)] + [TestCase("Joe.Movie.2.EXTENDED.EDITION.2015.German.DL.PAL.DVDR-ETM", "Joe Movie 2", "EXTENDED EDITION", 2015)] + [TestCase("Movie.EXTENDED.2011.HDRip.AC3.German.XviD-POE", "Movie", "EXTENDED", 2011)] //Special cases (see description) - [TestCase("Die.Klasse.von.1999.1990.German.720p.HDTV.x264-NORETAiL", "Die Klasse von 1999", "", 1990, Description = "year in the title")] - [TestCase("Suicide.Squad.2016.EXTENDED.German.DL.AC3.BDRip.x264-hqc", "Suicide Squad", "EXTENDED", 2016, Description = "edition after year")] - [TestCase("Knight.and.Day.2010.Extended.Cut.German.DTS.DL.720p.BluRay.x264-HDS", "Knight and Day", "Extended Cut", 2010, Description = "edition after year")] - [TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", "Der Soldat James", "", 1998, Description = "year at the end")] - [TestCase("Der.Hobbit.Eine.Unerwartete.Reise.Extended.German.720p.BluRay.x264-EXQUiSiTE", "Der Hobbit Eine Unerwartete Reise", "Extended", 0, Description = "no year & edition")] - [TestCase("Wolverine.Weg.des.Kriegers.EXTENDED.German.720p.BluRay.x264-EXQUiSiTE", "Wolverine Weg des Kriegers", "EXTENDED", 0, Description = "no year & edition")] - [TestCase("Die.Unfassbaren.Now.You.See.Me.EXTENDED.German.DTS.720p.BluRay.x264-RHD", "Die Unfassbaren Now You See Me", "EXTENDED", 0, Description = "no year & edition")] - [TestCase("Die Unfassbaren Now You See Me EXTENDED German DTS 720p BluRay x264-RHD", "Die Unfassbaren Now You See Me", "EXTENDED", 0, Description = "no year & edition & without dots")] + [TestCase("Movie.Klasse.von.1999.1990.German.720p.HDTV.x264-NORETAiL", "Movie Klasse von 1999", "", 1990, Description = "year in the title")] + [TestCase("Movie.Squad.2016.EXTENDED.German.DL.AC3.BDRip.x264-hqc", "Movie Squad", "EXTENDED", 2016, Description = "edition after year")] + [TestCase("Movie.and.Movie.2010.Extended.Cut.German.DTS.DL.720p.BluRay.x264-HDS", "Movie and Movie", "Extended Cut", 2010, Description = "edition after year")] + [TestCase("Der.Movie.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", "Der Movie James", "", 1998, Description = "year at the end")] + [TestCase("Der.Movie.Eine.Unerwartete.Reise.Extended.German.720p.BluRay.x264-EXQUiSiTE", "Der Movie Eine Unerwartete Reise", "Extended", 0, Description = "no year & edition")] + [TestCase("Movie.Weg.des.Kriegers.EXTENDED.German.720p.BluRay.x264-EXQUiSiTE", "Movie Weg des Kriegers", "EXTENDED", 0, Description = "no year & edition")] + [TestCase("Die.Unfassbaren.Movie.Name.EXTENDED.German.DTS.720p.BluRay.x264-RHD", "Die Unfassbaren Movie Name", "EXTENDED", 0, Description = "no year & edition")] + [TestCase("Die Unfassbaren Movie Name EXTENDED German DTS 720p BluRay x264-RHD", "Die Unfassbaren Movie Name", "EXTENDED", 0, Description = "no year & edition & without dots")] [TestCase("Passengers.German.DL.AC3.Dubbed..BluRay.x264-PsO", "Passengers", "", 0, Description = "no year")] [TestCase("Das.A.Team.Der.Film.Extended.Cut.German.720p.BluRay.x264-ANCIENT", "Das A Team Der Film", "Extended Cut", 0, Description = "no year")] [TestCase("Cars.2.German.DL.720p.BluRay.x264-EmpireHD", "Cars 2", "", 0, Description = "no year")] @@ -105,31 +105,31 @@ namespace NzbDrone.Core.Test.ParserTests } } - [TestCase("(1995) Ghost in the Shell", "Ghost in the Shell")] + [TestCase("(1995) Movie Name", "Movie Name")] public void should_parse_movie_folder_name(string postTitle, string title) { Parser.Parser.ParseMovieTitle(postTitle, true).MovieTitle.Should().Be(title); } - [TestCase("1941.1979.EXTENDED.720p.BluRay.X264-AMIABLE", 1979)] - [TestCase("Valana la Legende FRENCH BluRay 720p 2016 kjhlj", 2016)] - [TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", 1998)] - [TestCase("Leaving Jeruselem by Railway (1897) [DVD].mp4", 1897)] + [TestCase("1776.1979.EXTENDED.720p.BluRay.X264-AMIABLE", 1979)] + [TestCase("Movie Name FRENCH BluRay 720p 2016 kjhlj", 2016)] + [TestCase("Der.Movie.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", 1998)] + [TestCase("Movie Name (1897) [DVD].mp4", 1897)] public void should_parse_movie_year(string postTitle, int year) { Parser.Parser.ParseMovieTitle(postTitle).Year.Should().Be(year); } - [TestCase("Ghostbusters (2016) {tmdbid-43074}", 43074)] - [TestCase("Ghostbusters (2016) [tmdb-43074]", 43074)] - [TestCase("Ghostbusters (2016) {tmdb-43074}", 43074)] - [TestCase("Ghostbusters (2016) {tmdb-2020}", 2020)] + [TestCase("Movie Name (2016) {tmdbid-43074}", 43074)] + [TestCase("Movie Name (2016) [tmdb-43074]", 43074)] + [TestCase("Movie Name (2016) {tmdb-43074}", 43074)] + [TestCase("Movie Name (2016) {tmdb-2020}", 2020)] public void should_parse_tmdb_id(string postTitle, int tmdbId) { Parser.Parser.ParseMovieTitle(postTitle).TmdbId.Should().Be(tmdbId); } - [TestCase("The.Italian.Job.2008.720p.BluRay.X264-AMIABLE")] + [TestCase("The.Italian.Movie.2025.720p.BluRay.X264-AMIABLE")] public void should_not_parse_wrong_language_in_title(string postTitle) { var parsed = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -137,7 +137,7 @@ namespace NzbDrone.Core.Test.ParserTests parsed.Languages.First().Should().Be(Language.Unknown); } - [TestCase("The.Purge.3.Election.Year.2016.German.DTS.DL.720p.BluRay.x264-MULTiPLEX")] + [TestCase("The.Movie.Name.2016.German.DTS.DL.720p.BluRay.x264-MULTiPLEX")] public void should_not_parse_multi_language_in_releasegroup(string postTitle) { var parsed = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -145,7 +145,7 @@ namespace NzbDrone.Core.Test.ParserTests parsed.Languages.First().Should().Be(Language.German); } - [TestCase("The.Purge.3.Election.Year.2016.German.Multi.DTS.DL.720p.BluRay.x264-MULTiPLEX")] + [TestCase("The.Movie.Name.2016.German.Multi.DTS.DL.720p.BluRay.x264-MULTiPLEX")] public void should_parse_multi_language(string postTitle) { var parsed = Parser.Parser.ParseMovieTitle(postTitle, true); diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetMovieFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetMovieFixture.cs index 6abc4bef3..8a48474b8 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetMovieFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetMovieFixture.cs @@ -12,7 +12,7 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests [Test] public void should_use_passed_in_title_when_it_cannot_be_parsed() { - const string title = "30 Rock"; + const string title = "30 Movie"; Subject.GetMovie(title); @@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests [Test] public void should_use_parsed_series_title() { - const string title = "30.Rock.2015.720p.hdtv"; + const string title = "30.Movie.2015.720p.hdtv"; Subject.GetMovie(title); @@ -34,7 +34,7 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests /*[Test] public void should_fallback_to_title_without_year_and_year_when_title_lookup_fails() { - const string title = "House.2004.S01E01.720p.hdtv"; + const string title = "Movie.2004.S01E01.720p.hdtv"; var parsedEpisodeInfo = Parser.Parser.ParseMovieTitle(title,false,false); Subject.GetMovie(title); diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/ParseQualityDefinitionFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/ParseQualityDefinitionFixture.cs index 7fe69eb60..4041fc320 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/ParseQualityDefinitionFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/ParseQualityDefinitionFixture.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using NzbDrone.Core.Parser; using NzbDrone.Test.Common; @@ -76,8 +76,8 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests TODO: Add quality definition integration tests? [TestCase("Movie 2017 Bluray 1080p", "Bluray-1080p")] [TestCase("Movie 2017 Bluray Remux 1080p", "Remux-1080p")] - [TestCase("27.Dresses.2008.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p")] - [TestCase("The.Nightly.Show.2016.03.14.1080p.WEB.h264-spamTV", "WEBDL-1080p")] + [TestCase("27.Movie.2008.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p")] + [TestCase("The.Movie.Movie.2016.03.14.1080p.WEB.h264-spamTV", "WEBDL-1080p")] public void should_correctly_identify_default_definition(string title, string definitionName) { var result = Subject.ParseMovieInfo(title, new List()); @@ -143,17 +143,17 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests Subject.ParseQualityDefinition(CopyWithInfo(webInfo, "Size", largestSize)).Title.Should().Be("WEBDL-1080p"); } - [TestCase("Blade.Runner.Directors.Cut.2017.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", + [TestCase("Movie.Title.Directors.Cut.2017.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p Director")] - [TestCase("Blade.Runner.Directors.Edition.2017.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", + [TestCase("Movie.Title.Directors.Edition.2017.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p Director")] - [TestCase("Blade.Runner.2017.Directors.Edition.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", + [TestCase("Movie.Title.2017.Directors.Edition.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p Director")] - [TestCase("Blade.Runner.2017.Extended.Edition.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", + [TestCase("Movie.Title.2017.Extended.Edition.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N", "Remux-1080p")] - [TestCase("Blade.Runner.2017.BDREMUX.1080p.Bluray.MULTI.French.English", "Remux-1080p FR")] - [TestCase("Blade.Runner.2017.BDREMUX.1080p.Bluray.French", "Remux-1080p FR")] - [TestCase("Blade.Runner.2017.BDREMUX.1080p.Bluray.English", "Remux-1080p")] + [TestCase("Movie.Title.2017.BDREMUX.1080p.Bluray.MULTI.French.English", "Remux-1080p FR")] + [TestCase("Movie.Title.2017.BDREMUX.1080p.Bluray.French", "Remux-1080p FR")] + [TestCase("Movie.Title.2017.BDREMUX.1080p.Bluray.English", "Remux-1080p")] [Test] public void should_correctly_identify_advanced_definitons() { @@ -191,11 +191,11 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests [TestCase("My Movie 2017 German English", Language.English, Language.German)] - //[TestCase("Nocturnal.Animals.2016.MULTi.1080p.BluRay.x264-ANONA", Language.English, Language.French)] fails since no mention of french! - [TestCase("Nocturnal Animals (2016) MULTi VFQ [1080p] BluRay x264-PopHD", Language.English, Language.French)] - [TestCase("Castle.2009.S01E14.Germany.HDTV.XviD-LOL", Language.English)] - [TestCase("Castle.2009.S01E14.HDTV.XviD-LOL", Language.English)] - [TestCase("The Danish Girl 2015", Language.English)] + //[TestCase("Movie.2016.MULTi.1080p.BluRay.x264-ANONA", Language.English, Language.French)] fails since no mention of french! + [TestCase("Movie (2016) MULTi VFQ [1080p] BluRay x264-PopHD", Language.English, Language.French)] + [TestCase("Movie.2009.S01E14.Germany.HDTV.XviD-LOL", Language.English)] + [TestCase("Movie.2009.S01E14.HDTV.XviD-LOL", Language.English)] + [TestCase("The Danish Movie 2015", Language.English)] public void should_parse_advanced_languages_correctly(string title, params Language[] languages) { var result = Subject.ParseMovieInfo(title, new List()); diff --git a/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs deleted file mode 100644 index c0380bd0c..000000000 --- a/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace NzbDrone.Core.Test.ParserTests -{ - /* - [TestFixture] - [Ignore("Series")]//Is this really necessary with movies? I dont think so - public class PathParserFixture : CoreTest - { - [TestCase(@"z:\tv shows\battlestar galactica (2003)\Season 3\S03E05 - Collaborators.mkv", 3, 5)] - [TestCase(@"z:\tv shows\modern marvels\Season 16\S16E03 - The Potato.mkv", 16, 3)] - [TestCase(@"z:\tv shows\robot chicken\Specials\S00E16 - Dear Consumer - SD TV.avi", 0, 16)] - [TestCase(@"D:\shares\TV Shows\Parks And Recreation\Season 2\S02E21 - 94 Meetings - 720p TV.mkv", 2, 21)] - [TestCase(@"D:\shares\TV Shows\Battlestar Galactica (2003)\Season 2\S02E21.avi", 2, 21)] - [TestCase("C:/Test/TV/Chuck.4x05.HDTV.XviD-LOL", 4, 5)] - [TestCase(@"P:\TV Shows\House\Season 6\S06E13 - 5 to 9 - 720p BluRay.mkv", 6, 13)] - [TestCase(@"S:\TV Drop\House - 10x11 - Title [SDTV]\1011 - Title.avi", 10, 11)] - [TestCase(@"/TV Drop/House - 10x11 - Title [SDTV]/1011 - Title.avi", 10, 11)] - [TestCase(@"S:\TV Drop\King of the Hill - 10x12 - 24 Hour Propane People [SDTV]\1012 - 24 Hour Propane People.avi", 10, 12)] - [TestCase(@"/TV Drop/King of the Hill - 10x12 - 24 Hour Propane People [SDTV]/1012 - 24 Hour Propane People.avi", 10, 12)] - [TestCase(@"S:\TV Drop\King of the Hill - 10x12 - 24 Hour Propane People [SDTV]\Hour Propane People.avi", 10, 12)] - [TestCase(@"/TV Drop/King of the Hill - 10x12 - 24 Hour Propane People [SDTV]/Hour Propane People.avi", 10, 12)] - [TestCase(@"E:\Downloads\tv\The.Big.Bang.Theory.S01E01.720p.HDTV\ajifajjjeaeaeqwer_eppj.avi", 1, 1)] - [TestCase(@"C:\Test\Unsorted\The.Big.Bang.Theory.S01E01.720p.HDTV\tbbt101.avi", 1, 1)] - [TestCase(@"C:\Test\Unsorted\Terminator.The.Sarah.Connor.Chronicles.S02E19.720p.BluRay.x264-SiNNERS-RP\ba27283b17c00d01193eacc02a8ba98eeb523a76.mkv", 2, 19)] - [TestCase(@"C:\Test\Unsorted\Terminator.The.Sarah.Connor.Chronicles.S02E18.720p.BluRay.x264-SiNNERS-RP\45a55debe3856da318cc35882ad07e43cd32fd15.mkv", 2, 18)] - [TestCase(@"C:\Test\Series\Season 01\01 Pilot (1080p HD).mkv", 1, 1)] - [TestCase(@"C:\Test\Series\Season 01\1 Pilot (1080p HD).mkv", 1, 1)] - [TestCase(@"C:\Test\Series\Season 1\02 Honor Thy Father (1080p HD).m4v", 1, 2)] - [TestCase(@"C:\Test\Series\Season 1\2 Honor Thy Father (1080p HD).m4v", 1, 2)] - // [TestCase(@"C:\CSI.NY.S02E04.720p.WEB-DL.DD5.1.H.264\73696S02-04.mkv", 2, 4)] //Gets treated as S01E04 (because it gets parsed as anime) - public void should_parse_from_path(string path, string title) - { - var result = Parser.Parser.ParseMoviePath(path.AsOsAgnostic(), false); - result.MovieTitle.Should().Be(title); - - ExceptionVerification.IgnoreWarns(); - } - } - */ -} diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 8d1b4c942..1ec908e7f 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -42,110 +42,110 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("S07E23 .avi ", false)] - [TestCase("Nikita S02E01 HDTV XviD 2HD", false)] - [TestCase("Gossip Girl S05E11 PROPER HDTV XviD 2HD", true)] - [TestCase("The Jonathan Ross Show S02E08 HDTV x264 FTP", false)] - [TestCase("White.Van.Man.2011.S02E01.WS.PDTV.x264-TLA", false)] - [TestCase("White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA", true)] - [TestCase("The Real Housewives of Vancouver S01E04 DSR x264 2HD", false)] - [TestCase("Vanguard S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", false)] - [TestCase("Chuck S11E03 has no periods or extension HDTV", false)] - [TestCase("Chuck.S04E05.HDTV.XviD-LOL", false)] - [TestCase("Sonny.With.a.Chance.S02E15.avi", false)] - [TestCase("Sonny.With.a.Chance.S02E15.xvid", false)] - [TestCase("Sonny.With.a.Chance.S02E15.divx", false)] - [TestCase("The.Girls.Next.Door.S03E06.HDTV-WiDE", false)] - [TestCase("Degrassi.S10E27.WS.DSR.XviD-2HD", false)] - [TestCase("Muppet.Babies.S03.TVRip.XviD-NOGRP", false)] + [TestCase("Movie Name S02E01 HDTV XviD 2HD", false)] + [TestCase("Movie Name S05E11 PROPER HDTV XviD 2HD", true)] + [TestCase("Movie Name S02E08 HDTV x264 FTP", false)] + [TestCase("Movie.Name.2011.S02E01.WS.PDTV.x264-TLA", false)] + [TestCase("Movie Name.2011.S02E01.WS.PDTV.x264-REPACK-TLA", true)] + [TestCase("Movie Name S01E04 DSR x264 2HD", false)] + [TestCase("Movie Name S01E04 Mexicos Death Train DSR x264 MiNDTHEGAP", false)] + [TestCase("Movie Name S11E03 has no periods or extension HDTV", false)] + [TestCase("Movie Name.S04E05.HDTV.XviD-LOL", false)] + [TestCase("Some.Movie.S02E15.avi", false)] + [TestCase("Some.Movie.S02E15.xvid", false)] + [TestCase("Some.Movie.S02E15.divx", false)] + [TestCase("Some.Movie.S03E06.HDTV-WiDE", false)] + [TestCase("Movie Name.S10E27.WS.DSR.XviD-2HD", false)] + [TestCase("Movie Name.S03.TVRip.XviD-NOGRP", false)] public void should_parse_sdtv_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.TV, proper, Resolution.R480p); } - [TestCase("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", false)] - [TestCase("The.Girls.Next.Door.S03E06.DVD.Rip.XviD-WiDE", false)] - [TestCase("the.shield.1x13.circles.ws.xvidvd-tns", false)] - [TestCase("the_x-files.9x18.sunshine_days.ac3.ws_dvdrip_xvid-fov.avi", false)] - [TestCase("The.Third.Jihad.2008.DVDRip.360p.H264 iPod -20-40", false)] + [TestCase("Some.Movie.S03E06.DVDRip.XviD-WiDE", false)] + [TestCase("Some.Movie.S03E06.DVD.Rip.XviD-WiDE", false)] + [TestCase("the.Movie Name.1x13.circles.ws.xvidvd-tns", false)] + [TestCase("the_movie.9x18.sunshine_days.ac3.ws_dvdrip_xvid-fov.avi", false)] + [TestCase("The.Third.Movie Name.2008.DVDRip.360p.H264 iPod -20-40", false)] [TestCase("SomeMovie.2018.DVDRip.ts", false)] public void should_parse_dvd_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.DVD, proper, Resolution.R480p); } - [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD5.NTSC", false)] - [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD9.NTSC", false)] - [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVDR.NTSC", false)] - [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD-R.NTSC", false)] + [TestCase("Some.Movie.Magic.Rainbow.2007.DVD5.NTSC", false)] + [TestCase("Some.Movie.Magic.Rainbow.2007.DVD9.NTSC", false)] + [TestCase("Some.Movie.Magic.Rainbow.2007.DVDR.NTSC", false)] + [TestCase("Some.Movie.Magic.Rainbow.2007.DVD-R.NTSC", false)] public void should_parse_dvdr_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.DVD, proper, Resolution.R480p, Modifier.REMUX); } - [TestCase("Elementary.S01E10.The.Leviathan.480p.WEB-DL.x264-mSD", false)] - [TestCase("Glee.S04E10.Glee.Actually.480p.WEB-DL.x264-mSD", false)] - [TestCase("The.Big.Bang.Theory.S06E11.The.Santa.Simulation.480p.WEB-DL.x264-mSD", false)] - [TestCase("Da.Vincis.Demons.S02E04.480p.WEB.DL.nSD.x264-NhaNc3", false)] + [TestCase("Movie.Name.S01E10.The.Leviathan.480p.WEB-DL.x264-mSD", false)] + [TestCase("Movie.Name.S04E10.Glee.Actually.480p.WEB-DL.x264-mSD", false)] + [TestCase("Movie.Name.S06E11.The.Santa.Simulation.480p.WEB-DL.x264-mSD", false)] + [TestCase("Movie.Name.S02E04.480p.WEB.DL.nSD.x264-NhaNc3", false)] [TestCase("[HorribleSubs] Movie Title! 2018 [Web][MKV][h264][480p][AAC 2.0][Softsubs (HorribleSubs)]", false)] public void should_parse_webdl480p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBDL, proper, Resolution.R480p); } - [TestCase("Series.Title.1x04.ITA.WEBMux.x264-NovaRip", false)] + [TestCase("Movie.Name.1x04.ITA.WEBMux.x264-NovaRip", false)] public void should_parse_webrip480p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBRIP, proper, Resolution.R480p); } - [TestCase("Heidi Girl of the Alps (BD)(640x480(RAW) (BATCH 1) (1-13)", false)] - [TestCase("Hannibal.S01E05.480p.BluRay.DD5.1.x264-HiSD", false)] - [TestCase("WEEDS.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", false)] - [TestCase("Where.Do.We.Go.Now.2011.LIMITED.BluRay.360p.H264-20-40", false)] + [TestCase("Movie.Name (BD)(640x480(RAW) (BATCH 1) (1-13)", false)] + [TestCase("Movie.Name.S01E05.480p.BluRay.DD5.1.x264-HiSD", false)] + [TestCase("Movie.Name.S03E01-06.DUAL.BDRip.AC3.-HELLYWOOD", false)] + [TestCase("Movie.Name.2011.LIMITED.BluRay.360p.H264-20-40", false)] public void should_parse_bluray480p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.BLURAY, proper, Resolution.R480p); } - [TestCase("Dexter - S01E01 - Title [HDTV]", false)] - [TestCase("Dexter - S01E01 - Title [HDTV-720p]", false)] - [TestCase("Pawn Stars S04E87 REPACK 720p HDTV x264 aAF", true)] + [TestCase("Movie Name - S01E01 - Title [HDTV]", false)] + [TestCase("Movie Name - S01E01 - Title [HDTV-720p]", false)] + [TestCase("Movie.Name S04E87 REPACK 720p HDTV x264 aAF", true)] [TestCase("S07E23 - [HDTV-720p].mkv ", false)] - [TestCase("Chuck - S22E03 - MoneyBART - HD TV.mkv", false)] - [TestCase("Two.and.a.Half.Men.S08E05.720p.HDTV.X264-DIMENSION", false)] - [TestCase(@"E:\Downloads\tv\The.Big.Bang.Theory.S01E01.720p.HDTV\ajifajjjeaeaeqwer_eppj.avi", false)] - [TestCase("Gem.Hunt.S01E08.Tourmaline.Nepal.720p.HDTV.x264-DHD", false)] - [TestCase("Hells.Kitchen.US.S12E17.HR.WS.PDTV.X264-DIMENSION", false)] - [TestCase("Survivorman.The.Lost.Pilots.Summer.HR.WS.PDTV.x264-DHD", false)] + [TestCase("Movie.Name - S22E03 - MoneyBART - HD TV.mkv", false)] + [TestCase("Movie.Name.S08E05.720p.HDTV.X264-DIMENSION", false)] + [TestCase(@"E:\Downloads\tv\Movie.Name.S01E01.720p.HDTV\ajifajjjeaeaeqwer_eppj.avi", false)] + [TestCase("Movie.Name.S01E08.Tourmaline.Nepal.720p.HDTV.x264-DHD", false)] + [TestCase("Movie.Name.US.S12E17.HR.WS.PDTV.X264-DIMENSION", false)] + [TestCase("Movie.Name.The.Lost.Pilots.Movie.HR.WS.PDTV.x264-DHD", false)] public void should_parse_hdtv720p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.TV, proper, Resolution.R720p); } - [TestCase("DEXTER.S07E01.ARE.YOU.1080P.HDTV.X264-QCF", false)] - [TestCase("DEXTER.S07E01.ARE.YOU.1080P.HDTV.x264-QCF", false)] - [TestCase("DEXTER.S07E01.ARE.YOU.1080P.HDTV.proper.X264-QCF", true)] - [TestCase("Dexter - S01E01 - Title [HDTV-1080p]", false)] - [TestCase("Super.Robot.Monkey.Team.Hyperforce.Go.2020.1080i.HDTV.DD5.1.H.264-NOGRP", false)] + [TestCase("Movie Name.S07E01.ARE.YOU.1080P.HDTV.X264-QCF", false)] + [TestCase("Movie Name.S07E01.ARE.YOU.1080P.HDTV.x264-QCF", false)] + [TestCase("Movie Name.S07E01.ARE.YOU.1080P.HDTV.proper.X264-QCF", true)] + [TestCase("Movie Name - S01E01 - Title [HDTV-1080p]", false)] + [TestCase("Movie.Name.2020.1080i.HDTV.DD5.1.H.264-NOGRP", false)] public void should_parse_hdtv1080p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.TV, proper, Resolution.R1080p); } - [TestCase("Vanguard S01E04 Mexicos Death Train 720p WEB DL", false)] - [TestCase("Hawaii Five 0 S02E21 720p WEB DL DD5 1 H 264", false)] - [TestCase("Castle S04E22 720p WEB DL DD5 1 H 264 NFHD", false)] - [TestCase("Chuck - S11E06 - D-Yikes! - 720p WEB-DL.mkv", false)] - [TestCase("Sonny.With.a.Chance.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", false)] + [TestCase("Movie Name S01E04 Mexicos Death Train 720p WEB DL", false)] + [TestCase("Movie Name S02E21 720p WEB DL DD5 1 H 264", false)] + [TestCase("Movie Name S04E22 720p WEB DL DD5 1 H 264 NFHD", false)] + [TestCase("Movie Name - S11E06 - D-Yikes! - 720p WEB-DL.mkv", false)] + [TestCase("Some.Movie.S02E15.720p.WEB-DL.DD5.1.H.264-SURFER", false)] [TestCase("S07E23 - [WEBDL].mkv ", false)] - [TestCase("Fringe S04E22 720p WEB-DL DD5.1 H264-EbP.mkv", false)] - [TestCase("House.S04.720p.Web-Dl.Dd5.1.h264-P2PACK", false)] - [TestCase("Da.Vincis.Demons.S02E04.720p.WEB.DL.nSD.x264-NhaNc3", false)] - [TestCase("CSI.Miami.S04E25.720p.iTunesHD.AVC-TVS", false)] - [TestCase("Castle.S06E23.720p.WebHD.h264-euHD", false)] - [TestCase("The.Nightly.Show.2016.03.14.720p.WEB.x264-spamTV", false)] - [TestCase("The.Nightly.Show.2016.03.14.720p.WEB.h264-spamTV", false)] - [TestCase("BrainDead.S01E01.The.Insanity.Principle.720p.WEB-DL.DD5.1.H.264-BD", false)] + [TestCase("Movie Name S04E22 720p WEB-DL DD5.1 H264-EbP.mkv", false)] + [TestCase("Movie Name.S04.720p.Web-Dl.Dd5.1.h264-P2PACK", false)] + [TestCase("Movie Name.S02E04.720p.WEB.DL.nSD.x264-NhaNc3", false)] + [TestCase("Movie Name.S04E25.720p.iTunesHD.AVC-TVS", false)] + [TestCase("Movie Name.S06E23.720p.WebHD.h264-euHD", false)] + [TestCase("Movie Name.2016.03.14.720p.WEB.x264-spamTV", false)] + [TestCase("Movie Name.2016.03.14.720p.WEB.h264-spamTV", false)] + [TestCase("Movie Name.S01E01.The.Insanity.Principle.720p.WEB-DL.DD5.1.H.264-BD", false)] [TestCase("[HorribleSubs] Movie Title! 2018 [Web][MKV][h264][720p][AAC 2.0][Softsubs (HorribleSubs)]", false)] [TestCase("[HorribleSubs] Movie Title! 2018 [Web][MKV][h264][AAC 2.0][Softsubs (HorribleSubs)]", false)] public void should_parse_webdl720p_quality(string title, bool proper) @@ -154,31 +154,31 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("Movie.Title.ITA.720p.WEBMux.x264-NovaRip", false)] - [TestCase("Arrested.Development.S04E01.720p.WEBRip.AAC2.0.x264-NFRiP", false)] + [TestCase("Movie Name.S04E01.720p.WEBRip.AAC2.0.x264-NFRiP", false)] public void should_parse_webrip720p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBRIP, proper, Resolution.R720p); } - [TestCase("CSI NY S09E03 1080p WEB DL DD5 1 H264 NFHD", false)] - [TestCase("Two and a Half Men S10E03 1080p WEB DL DD5 1 H 264 NFHD", false)] - [TestCase("Criminal.Minds.S08E01.1080p.WEB-DL.DD5.1.H264-NFHD", false)] - [TestCase("Its.Always.Sunny.in.Philadelphia.S08E01.1080p.WEB-DL.proper.AAC2.0.H.264", true)] - [TestCase("Two and a Half Men S10E03 1080p WEB DL DD5 1 H 264 REPACK NFHD", true)] - [TestCase("Glee.S04E09.Swan.Song.1080p.WEB-DL.DD5.1.H.264-ECI", false)] - [TestCase("The.Big.Bang.Theory.S06E11.The.Santa.Simulation.1080p.WEB-DL.DD5.1.H.264", false)] - [TestCase("Rosemary's.Baby.S01E02.Night.2.[WEBDL-1080p].mkv", false)] - [TestCase("The.Nightly.Show.2016.03.14.1080p.WEB.x264-spamTV", false)] - [TestCase("The.Nightly.Show.2016.03.14.1080p.WEB.h264-spamTV", false)] - [TestCase("Psych.S01.1080p.WEB-DL.AAC2.0.AVC-TrollHD", false)] + [TestCase("Movie Name S09E03 1080p WEB DL DD5 1 H264 NFHD", false)] + [TestCase("Movie Name S10E03 1080p WEB DL DD5 1 H 264 NFHD", false)] + [TestCase("Movie.Name.S08E01.1080p.WEB-DL.DD5.1.H264-NFHD", false)] + [TestCase("Movie.Name.S08E01.1080p.WEB-DL.proper.AAC2.0.H.264", true)] + [TestCase("Movie Name S10E03 1080p WEB DL DD5 1 H 264 REPACK NFHD", true)] + [TestCase("Movie.Name.S04E09.Swan.Song.1080p.WEB-DL.DD5.1.H.264-ECI", false)] + [TestCase("Movie.Name.S06E11.The.Santa.Simulation.1080p.WEB-DL.DD5.1.H.264", false)] + [TestCase("Movie.Name.Baby.S01E02.Night.2.[WEBDL-1080p].mkv", false)] + [TestCase("Movie.Name.2016.03.14.1080p.WEB.x264-spamTV", false)] + [TestCase("Movie.Name.2016.03.14.1080p.WEB.h264-spamTV", false)] + [TestCase("Movie.Name.S01.1080p.WEB-DL.AAC2.0.AVC-TrollHD", false)] [TestCase("Series Title S06E08 1080p WEB h264-EXCLUSIVE", false)] [TestCase("Series Title S06E08 No One PROPER 1080p WEB DD5 1 H 264-EXCLUSIVE", true)] [TestCase("Series Title S06E08 No One PROPER 1080p WEB H 264-EXCLUSIVE", true)] - [TestCase("The.Simpsons.S25E21.Pay.Pal.1080p.WEB-DL.DD5.1.H.264-NTb", false)] - [TestCase("The.Simpsons.2017.1080p.WEB-DL.DD5.1.H.264.Remux.-NTb", false)] - [TestCase("Fast.and.Furious.Presents.Hobbs.and.Shaw.2019.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTG", false)] - [TestCase("Legacies.2020.1080p.AMZN.WEB...", false)] - [TestCase("Legacies.2020.1080p.AMZN.WEB.", false)] + [TestCase("The.Movie.Name.S25E21.Pay.Pal.1080p.WEB-DL.DD5.1.H.264-NTb", false)] + [TestCase("The.Movie.Name.2017.1080p.WEB-DL.DD5.1.H.264.Remux.-NTb", false)] + [TestCase("Movie.Name.2019.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTG", false)] + [TestCase("Movie.Name.2020.1080p.AMZN.WEB...", false)] + [TestCase("Movie.Name.2020.1080p.AMZN.WEB.", false)] [TestCase("Movie Title - 2020 1080p Viva MKV WEB", false)] [TestCase("[HorribleSubs] Movie Title! 2018 [Web][MKV][h264][1080p][AAC 2.0][Softsubs (HorribleSubs)]", false)] public void should_parse_webdl1080p_quality(string title, bool proper) @@ -186,138 +186,138 @@ namespace NzbDrone.Core.Test.ParserTests ParseAndVerifyQuality(title, Source.WEBDL, proper, Resolution.R1080p); } - [TestCase("Arrested.Development.S04E01.iNTERNAL.1080p.WEBRip.x264-QRUS", false)] - [TestCase("Series.Title.1x04.ITA.1080p.WEBMux.x264-NovaRip", false)] - [TestCase("The.Mandalorian.2019.S02E07.Chapter.15.The.Believer.4Kto1080p.DSNYP.Webrip.x265.10bit.EAC3.5.1.Atmos.GokiTAoE", false)] + [TestCase("Movie.Name.S04E01.iNTERNAL.1080p.WEBRip.x264-QRUS", false)] + [TestCase("Movie.Name.1x04.ITA.1080p.WEBMux.x264-NovaRip", false)] + [TestCase("Movie.Name.2019.S02E07.Chapter.15.The.Believer.4Kto1080p.DSNYP.Webrip.x265.10bit.EAC3.5.1.Atmos.GokiTAoE", false)] public void should_parse_webrip1080p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBRIP, proper, Resolution.R1080p); } - [TestCase("The.Nightly.Show.2016.03.14.2160p.WEB.x264-spamTV", false)] - [TestCase("The.Nightly.Show.2016.03.14.2160p.WEB.h264-spamTV", false)] - [TestCase("The.Nightly.Show.2016.03.14.2160p.WEB.PROPER.h264-spamTV", true)] + [TestCase("Movie.Name.2016.03.14.2160p.WEB.x264-spamTV", false)] + [TestCase("Movie.Name.2016.03.14.2160p.WEB.h264-spamTV", false)] + [TestCase("Movie.Name.2016.03.14.2160p.WEB.PROPER.h264-spamTV", true)] [TestCase("[HorribleSubs] Movie Title! 2018 [Web][MKV][h264][2160p][AAC 2.0][Softsubs (HorribleSubs)]", false)] public void should_parse_webdl2160p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBDL, proper, Resolution.R2160p); } - [TestCase("CASANOVA S01E01.2160P AMZN WEBRIP DD2.0 HI10P X264-TROLLUHD", false)] - [TestCase("JUST ADD MAGIC S01E01.2160P AMZN WEBRIP DD2.0 X264-TROLLUHD", false)] - [TestCase("The.Man.In.The.High.Castle.S01E01.2160p.AMZN.WEBRip.DD2.0.Hi10p.X264-TrollUHD", false)] - [TestCase("The Man In the High Castle S01E01 2160p AMZN WEBRip DD2.0 Hi10P x264-TrollUHD", false)] + [TestCase("Movie Name S01E01.2160P AMZN WEBRIP DD2.0 HI10P X264-TROLLUHD", false)] + [TestCase("Movie ADD Name S01E01.2160P AMZN WEBRIP DD2.0 X264-TROLLUHD", false)] + [TestCase("Movie.Name.S01E01.2160p.AMZN.WEBRip.DD2.0.Hi10p.X264-TrollUHD", false)] + [TestCase("Movie Name S01E01 2160p AMZN WEBRip DD2.0 Hi10P x264-TrollUHD", false)] public void should_parse_webrip2160p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.WEBRIP, proper, Resolution.R2160p); } - [TestCase("WEEDS.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", false)] - [TestCase("Chuck - S01E03 - Come Fly With Me - 720p BluRay.mkv", false)] - [TestCase("The Big Bang Theory.S03E01.The Electric Can Opener Fluctuation.m2ts", false)] - [TestCase("Revolution.S01E02.Chained.Heat.[Bluray720p].mkv", false)] - [TestCase("[FFF] DATE A LIVE - 01 [BD][720p-AAC][0601BED4]", false)] - [TestCase("[coldhell] Pupa v3 [BD720p][03192D4C]", false)] - [TestCase("[RandomRemux] Nobunagun - 01 [720p BD][043EA407].mkv", false)] - [TestCase("[Kaylith] Isshuukan Friends Specials - 01 [BD 720p AAC][B7EEE164].mkv", false)] - [TestCase("WEEDS.S03E01-06.DUAL.Blu-ray.AC3.-HELLYWOOD.avi", false)] - [TestCase("WEEDS.S03E01-06.DUAL.720p.Blu-ray.AC3.-HELLYWOOD.avi", false)] - [TestCase("[Elysium]Lucky.Star.01(BD.720p.AAC.DA)[0BB96AD8].mkv", false)] - [TestCase("Battlestar.Galactica.S01E01.33.720p.HDDVD.x264-SiNNERS.mkv", false)] - [TestCase("The.Expanse.S01E07.RERIP.720p.BluRay.x264-DEMAND", true)] - [TestCase("John.Carpenter.Live.Retrospective.2016.2018.720p.MBluRay.x264-CRUELTY.mkv", false)] - [TestCase("Heart.Live.In.Atlantic.City.2019.720p.MBLURAY.x264-MBLURAYFANS.mkv", false)] - [TestCase("Opeth.Garden.Of.The.Titans.Live.At.Red.Rocks.Amphitheatre.2017.720p.MBluRay.x264-TREBLE.mkv", false)] - [TestCase("Justified.Stagione.2.Parte.2.ITA-ENG.720p.BDMux.DD5.1.x264-DarkSideMux", false)] + [TestCase("Movie.Name.S03E01-06.DUAL.Bluray.AC3.-HELLYWOOD.avi", false)] + [TestCase("Movie Name - S01E03 - Come Fly With Me - 720p BluRay.mkv", false)] + [TestCase("Movie Name.S03E01.The Electric Can Opener Fluctuation.m2ts", false)] + [TestCase("Movie.Name.S01E02.Chained.Heat.[Bluray720p].mkv", false)] + [TestCase("[FFF] Movie Name - 01 [BD][720p-AAC][0601BED4]", false)] + [TestCase("[coldhell] Movie v3 [BD720p][03192D4C]", false)] + [TestCase("[RandomRemux] Movie - 01 [720p BD][043EA407].mkv", false)] + [TestCase("[Kaylith] Movie Friends Movies - 01 [BD 720p AAC][B7EEE164].mkv", false)] + [TestCase("Movie.Name.S03E01-06.DUAL.Blu-ray.AC3.-HELLYWOOD.avi", false)] + [TestCase("Movie.Name.S03E01-06.DUAL.720p.Blu-ray.AC3.-HELLYWOOD.avi", false)] + [TestCase("[Elysium]Movie.Name.01(BD.720p.AAC.DA)[0BB96AD8].mkv", false)] + [TestCase("Movie.Name.S01E01.33.720p.HDDVD.x264-SiNNERS.mkv", false)] + [TestCase("Movie.Name.S01E07.RERIP.720p.BluRay.x264-DEMAND", true)] + [TestCase("Movie.Name.2016.2018.720p.MBluRay.x264-CRUELTY.mkv", false)] + [TestCase("Movie.Name.2019.720p.MBLURAY.x264-MBLURAYFANS.mkv", false)] + [TestCase("Movie.Name2017.720p.MBluRay.x264-TREBLE.mkv", false)] + [TestCase("Movie.Name.2.Parte.2.ITA-ENG.720p.BDMux.DD5.1.x264-DarkSideMux", false)] public void should_parse_bluray720p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.BLURAY, proper, Resolution.R720p); } - [TestCase("Chuck - S01E03 - Come Fly With Me - 1080p BluRay.mkv", false)] - [TestCase("Sons.Of.Anarchy.S02E13.1080p.BluRay.x264-AVCDVD", false)] - [TestCase("Revolution.S01E02.Chained.Heat.[Bluray1080p].mkv", false)] - [TestCase("[FFF] Namiuchigiwa no Muromi-san - 10 [BD][1080p-FLAC][0C4091AF]", false)] - [TestCase("[coldhell] Pupa v2 [BD1080p][5A45EABE].mkv", false)] - [TestCase("[Kaylith] Isshuukan Friends Specials - 01 [BD 1080p FLAC][429FD8C7].mkv", false)] - [TestCase("[Zurako] Log Horizon - 01 - The Apocalypse (BD 1080p AAC) [7AE12174].mkv", false)] - [TestCase("WEEDS.S03E01-06.DUAL.1080p.Blu-ray.AC3.-HELLYWOOD.avi", false)] - [TestCase("[Coalgirls]_Durarara!!_01_(1920x1080_Blu-ray_FLAC)_[8370CB8F].mkv", false)] - [TestCase("John.Carpenter.Live.Retrospective.2016.2018.1080p.MBluRay.x264-CRUELTY.mkv", false)] - [TestCase("Heart.Live.In.Atlantic.City.2019.1080p.MBLURAY.x264-MBLURAYFANS.mkv", false)] - [TestCase("Opeth.Garden.Of.The.Titans.Live.At.Red.Rocks.Amphitheatre.2017.1080p.MBluRay.x264-TREBLE.mkv", false)] - [TestCase("Rise.Of.The.Planet.Of.The.Apes.2011.UHD.BluRay.DD5.1.HDR.x265-CtrlHD/ctrlhd-rotpota-1080p.mkv", false)] - [TestCase("V for Vendetta 2005 1080p UHD BluRay DD+7.1 x264-LoRD.mkv", false)] - [TestCase("Rise.Of.The.Planet.Of.The.Apes.2011.1080p.UHD.BluRay.DD5.1.HDR.x265-CtrlHD.mkv", false)] + [TestCase("Movie Title - S01E03 - Come Fly With Me - 1080p BluRay.mkv", false)] + [TestCase("Movie.Title.S02E13.1080p.BluRay.x264-AVCDVD", false)] + [TestCase("Movie.S01E02.Chained.Heat.[Bluray1080p].mkv", false)] + [TestCase("[FFF] Movie no Muromi-san - 10 [BD][1080p-FLAC][0C4091AF]", false)] + [TestCase("[coldhell] Movie v2 [BD1080p][5A45EABE].mkv", false)] + [TestCase("[Kaylith] Movie Friends Specials - 01 [BD 1080p FLAC][429FD8C7].mkv", false)] + [TestCase("[Zurako] Log Movie - 01 - The Movie (BD 1080p AAC) [7AE12174].mkv", false)] + [TestCase("Movie.S03E01-06.DUAL.1080p.Blu-ray.AC3.-HELLYWOOD.avi", false)] + [TestCase("[Coalgirls]_Movie!!_01_(1920x1080_Blu-ray_FLAC)_[8370CB8F].mkv", false)] + [TestCase("Movie.Name.2016.2018.1080p.MBluRay.x264-CRUELTY.mkv", false)] + [TestCase("Movie.Name.2019.1080p.MBLURAY.x264-MBLURAYFANS.mkv", false)] + [TestCase("Movie.Name2017.1080p.MBluRay.x264-TREBLE.mkv", false)] + [TestCase("Movie.Name.2011.UHD.BluRay.DD5.1.HDR.x265-CtrlHD/ctrlhd-rotpota-1080p.mkv", false)] + [TestCase("Movie Name 2005 1080p UHD BluRay DD+7.1 x264-LoRD.mkv", false)] + [TestCase("Movie.Name.2011.1080p.UHD.BluRay.DD5.1.HDR.x265-CtrlHD.mkv", false)] public void should_parse_bluray1080p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.BLURAY, proper, Resolution.R1080p); } - [TestCase("Revolution.S01E02.Chained.Heat.[Bluray2160p].mkv", false)] - [TestCase("[FFF] Namiuchigiwa no Muromi-san - 10 [BD][2160p-FLAC][0C4091AF]", false)] - [TestCase("[coldhell] Pupa v2 [BD2160p][5A45EABE].mkv", false)] - [TestCase("[Kaylith] Isshuukan Friends Specials - 01 [BD 2160p FLAC][429FD8C7].mkv", false)] - [TestCase("[Zurako] Log Horizon - 01 - The Apocalypse (BD 2160p AAC) [7AE12174].mkv", false)] - [TestCase("WEEDS.S03E01-06.DUAL.2160p.Blu-ray.AC3.-HELLYWOOD.avi", false)] - [TestCase("[Coalgirls]_Durarara!!_01_(3840x2160_Blu-ray_FLAC)_[8370CB8F].mkv", false)] - [TestCase("John.Carpenter.Live.Retrospective.2016.2018.2160p.MBluRay.x264-CRUELTY.mkv", false)] - [TestCase("Heart.Live.In.Atlantic.City.2019.2160p.MBLURAY.x264-MBLURAYFANS.mkv", false)] - [TestCase("Opeth.Garden.Of.The.Titans.Live.At.Red.Rocks.Amphitheatre.2017.2160p.MBluRay.x264-TREBLE.mkv", false)] + [TestCase("Movie.S01E02.Chained.Heat.[Bluray2160p].mkv", false)] + [TestCase("[FFF] Movie no Movie-san - 10 [BD][2160p-FLAC][0C4091AF]", false)] + [TestCase("[coldhell] Movie v2 [BD2160p][5A45EABE].mkv", false)] + [TestCase("[Kaylith] Movie Friends Specials - 01 [BD 2160p FLAC][429FD8C7].mkv", false)] + [TestCase("[Zurako] Log Movie - 01 - The Movie (BD 2160p AAC) [7AE12174].mkv", false)] + [TestCase("Movie.Title.S03E01-06.DUAL.2160p.Blu-ray.AC3.-HELLYWOOD.avi", false)] + [TestCase("[Coalgirls]_Movie!!_01_(3840x2160_Blu-ray_FLAC)_[8370CB8F].mkv", false)] + [TestCase("Movie.Title.2016.2018.2160p.MBluRay.x264-CRUELTY.mkv", false)] + [TestCase("Movie.Title.2019.2160p.MBLURAY.x264-MBLURAYFANS.mkv", false)] + [TestCase("Movie.Title.2017.2160p.MBluRay.x264-TREBLE.mkv", false)] public void should_parse_bluray2160p_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.BLURAY, proper, Resolution.R2160p); } [TestCase("Movie.Name.2004.576p.BDRip.x264-HANDJOB")] - [TestCase("Hannibal.S01E05.576p.BluRay.DD5.1.x264-HiSD")] + [TestCase("Movie.Title.S01E05.576p.BluRay.DD5.1.x264-HiSD")] public void should_parse_bluray576p_quality(string title) { ParseAndVerifyQuality(title, Source.BLURAY, false, Resolution.R576p); } - [TestCase("Contract.to.Kill.2016.REMUX.1080p.BluRay.AVC.DTS-HD.MA.5.1-iFT")] - [TestCase("27.Dresses.2008.REMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] - [TestCase("27.Dresses.2008.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] - [TestCase("The.Stoning.of.Soraya.M.2008.USA.BluRay.Remux.1080p.MPEG-2.DD.5.1-TDD")] - [TestCase("Wildling.2018.1080p.BluRay.REMUX.MPEG-2.DTS-HD.MA.5.1-EPSiLON")] + [TestCase("Movie.Title.2016.REMUX.1080p.BluRay.AVC.DTS-HD.MA.5.1-iFT")] + [TestCase("Movie.Name.2008.REMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] + [TestCase("Movie.Name.2008.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] + [TestCase("Movie.Title.M.2008.USA.BluRay.Remux.1080p.MPEG-2.DD.5.1-TDD")] + [TestCase("Movie.Title.2018.1080p.BluRay.REMUX.MPEG-2.DTS-HD.MA.5.1-EPSiLON")] public void should_parse_remux1080p_quality(string title) { ParseAndVerifyQuality(title, Source.BLURAY, false, Resolution.R1080p, Modifier.REMUX); } - [TestCase("Contract.to.Kill.2016.REMUX.2160p.BluRay.AVC.DTS-HD.MA.5.1-iFT")] - [TestCase("27.Dresses.2008.REMUX.2160p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] - [TestCase("The.Shining.1980.2160p.UHD.BluRay.Remux.HDR.HEVC.DTS-HD.MA.5.1-PmP.mkv")] - [TestCase("Stranger.Things.2016.T1.UHDRemux.2160p.HEVC.Dual.AC3.5.1-TrueHD.5.1.Sub")] - [TestCase("[Dolby Vision] Game.of.Thrones.S07.MULTi.UHD.BLURAY.REMUX.DV-NoTag")] + [TestCase("Movie.Title.2016.REMUX.2160p.BluRay.AVC.DTS-HD.MA.5.1-iFT")] + [TestCase("Movie.Name.2008.REMUX.2160p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] + [TestCase("Movie.Title.1980.2160p.UHD.BluRay.Remux.HDR.HEVC.DTS-HD.MA.5.1-PmP.mkv")] + [TestCase("Movie.Title.2016.T1.UHDRemux.2160p.HEVC.Dual.AC3.5.1-TrueHD.5.1.Sub")] + [TestCase("[Dolby Vision] Movie.Title.S07.MULTi.UHD.BLURAY.REMUX.DV-NoTag")] public void should_parse_remux2160p_quality(string title) { ParseAndVerifyQuality(title, Source.BLURAY, false, Resolution.R2160p, Modifier.REMUX); } - [TestCase("G.I.Joe.Retaliation.2013.BDISO")] - [TestCase("Star.Wars.Episode.III.Revenge.Of.The.Sith.2005.MULTi.COMPLETE.BLURAY-VLS")] - [TestCase("The Dark Knight Rises (2012) Bluray ISO [USENET-TURK]")] - [TestCase("Jurassic Park.1993..BD25.ISO")] - [TestCase("Bait.2012.Bluray.1080p.3D.AVC.DTS-HD.MA.5.1.iso")] - [TestCase("Daylight.1996.Bluray.ISO")] + [TestCase("Movie.Title.2013.BDISO")] + [TestCase("Movie.Title.2005.MULTi.COMPLETE.BLURAY-VLS")] + [TestCase("Movie Name (2012) Bluray ISO [USENET-TURK]")] + [TestCase("Movie Name.1993..BD25.ISO")] + [TestCase("Movie.Title.2012.Bluray.1080p.3D.AVC.DTS-HD.MA.5.1.iso")] + [TestCase("Movie.Title.1996.Bluray.ISO")] public void should_parse_brdisk_1080p_quality(string title) { ParseAndVerifyQuality(title, Source.BLURAY, false, Resolution.R1080p, Modifier.BRDISK); } - [TestCase("Pan.2015.Open.Matte.1080i.HDTV.DD5.1.MPEG2", false)] - [TestCase("Nobody.To.Watch.Over.Me.2009.1080i.HDTV.AAC2.0.MPEG2-PepelefuF", false)] + [TestCase("Movie.Title.2015.Open.Matte.1080i.HDTV.DD5.1.MPEG2", false)] + [TestCase("Movie.Title.2009.1080i.HDTV.AAC2.0.MPEG2-PepelefuF", false)] public void should_parse_raw_quality(string title, bool proper) { ParseAndVerifyQuality(title, Source.TV, proper, Resolution.R1080p, Modifier.RAWHD); } - [TestCase("Sonny.With.a.Chance.S02E15", false)] - [TestCase("Law & Order: Special Victims Unit - 11x11 - Quickie", false)] - [TestCase("Series.Title.S01E01.webm", false)] - [TestCase("Droned.S01E01.The.Web.MT-dd", false)] + [TestCase("Some.Movie.S02E15", false)] + [TestCase("Movie Name - 11x11 - Quickie", false)] + [TestCase("Movie.Name.S01E01.webm", false)] + [TestCase("Movie.Title.S01E01.The.Web.MT-dd", false)] public void quality_parse(string title, bool proper) { ParseAndVerifyQuality(title, Source.UNKNOWN, proper, Resolution.Unknown); @@ -350,7 +350,7 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("Movie - 2018 [HDTV-1080p]")] - [TestCase("Saturday.Night.Live.Vintage.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra")] + [TestCase("Movie.Title.S10E09.Eddie.Murphy.The.Honeydrippers.1080i.UPSCALE.HDTV.DD5.1.MPEG2-zebra")] [TestCase("Movie.Title.2018.Bluray720p")] [TestCase("Movie.Title.2018.Bluray1080p")] [TestCase("Movie.Title.2018.Bluray2160p")] @@ -377,10 +377,10 @@ namespace NzbDrone.Core.Test.ParserTests result.ResolutionDetectionSource.Should().Be(QualityDetectionSource.Name); } - [TestCase("White.Van.Man.2011.S02E01.WS.PDTV.x264-REPACK-TLA")] - [TestCase("Series.Title.S01E01.Bluray")] - [TestCase("Series.Title.S01E01.HD.TV")] - [TestCase("Series.Title.S01E01.SD.TV")] + [TestCase("Movie.Title.2011.S02E01.WS.PDTV.x264-REPACK-TLA")] + [TestCase("Movie.Title.S01E01.Bluray")] + [TestCase("Movie.Title.S01E01.HD.TV")] + [TestCase("Movie.Title.S01E01.SD.TV")] public void should_parse_source_from_name(string title) { var result = QualityParser.ParseQuality(title); @@ -389,10 +389,10 @@ namespace NzbDrone.Core.Test.ParserTests result.ResolutionDetectionSource.Should().Be(QualityDetectionSource.Unknown); } - [TestCase("Revolution.S01E02.Chained.Heat.mkv")] - [TestCase("Dexter - S01E01 - Title.avi")] - [TestCase("the_x-files.9x18.sunshine_days.avi")] - [TestCase("[CR] Sailor Moon - 004 [48CE2D0F].avi")] + [TestCase("Movie.Title.S01E02.Chained.Heat.mkv")] + [TestCase("Movie Name - S01E01 - Title.avi")] + [TestCase("Movie.Title..9x18.sunshine_days.avi")] + [TestCase("[CR] Movie Title - 004 [48CE2D0F].avi")] public void should_parse_quality_from_extension(string title) { var result = QualityParser.ParseQuality(title); @@ -401,8 +401,8 @@ namespace NzbDrone.Core.Test.ParserTests result.ResolutionDetectionSource.Should().Be(QualityDetectionSource.Extension); } - [TestCase("Revolution.S01E02.Chained.Heat.1080p.mkv")] - [TestCase("Dexter - S01E01 - Title.720p.avi")] + [TestCase("Movie.Name.S01E02.Chained.Heat.1080p.mkv")] + [TestCase("Movie Name - S01E01 - Title.720p.avi")] public void should_parse_resolution_from_name_and_source_from_extension(string title) { var result = QualityParser.ParseQuality(title); @@ -413,8 +413,8 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Movie.Title.2016.1080p.KORSUB.WEBRip.x264.AAC2.0-RADARR", "KORSUB")] [TestCase("Movie.Title.2016.1080p.KORSUBS.WEBRip.x264.AAC2.0-RADARR", "KORSUBS")] - [TestCase("Wonder Woman 2017 HC 720p HDRiP DD5 1 x264-LEGi0N", "Generic Hardcoded Subs")] - [TestCase("Ghost.In.The.Shell.2017.720p.SUBBED.HDRip.V2.XViD-26k.avi", "Generic Hardcoded Subs")] + [TestCase("Movie Title 2017 HC 720p HDRiP DD5 1 x264-LEGi0N", "Generic Hardcoded Subs")] + [TestCase("Movie.Title.2017.720p.SUBBED.HDRip.V2.XViD-26k.avi", "Generic Hardcoded Subs")] public void should_parse_hardcoded_subs(string postTitle, string sub) { QualityParser.ParseQuality(postTitle).HardcodedSubs.Should().Be(sub); diff --git a/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs index a376b11bc..4a55e72ff 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ReleaseGroupParserFixture.cs @@ -7,39 +7,39 @@ namespace NzbDrone.Core.Test.ParserTests [TestFixture] public class ReleaseGroupParserFixture : CoreTest { - [TestCase("Castle.2009.S01E14.English.HDTV.XviD-LOL", "LOL")] - [TestCase("Castle 2009 S01E14 English HDTV XviD LOL", null)] + [TestCase("Movie.2009.S01E14.English.HDTV.XviD-LOL", "LOL")] + [TestCase("Movie 2009 S01E14 English HDTV XviD LOL", null)] [TestCase("Acropolis Now S05 EXTRAS DVDRip XviD RUNNER", null)] [TestCase("Punky.Brewster.S01.EXTRAS.DVDRip.XviD-RUNNER", "RUNNER")] [TestCase("2020.NZ.2011.12.02.PDTV.XviD-C4TV", "C4TV")] - [TestCase("The.Office.S03E115.DVDRip.XviD-OSiTV", "OSiTV")] - [TestCase("The Office - S01E01 - Pilot [HTDV-480p]", null)] - [TestCase("The Office - S01E01 - Pilot [HTDV-720p]", null)] - [TestCase("The Office - S01E01 - Pilot [HTDV-1080p]", null)] - [TestCase("The.Walking.Dead.S04E13.720p.WEB-DL.AAC2.0.H.264-Cyphanix", "Cyphanix")] - [TestCase("Arrow.S02E01.720p.WEB-DL.DD5.1.H.264.mkv", null)] + [TestCase("Some.Movie.S03E115.DVDRip.XviD-OSiTV", "OSiTV")] + [TestCase("Some Movie - S01E01 - Pilot [HTDV-480p]", null)] + [TestCase("Some Movie - S01E01 - Pilot [HTDV-720p]", null)] + [TestCase("Some Movie - S01E01 - Pilot [HTDV-1080p]", null)] + [TestCase("Movie.Name.S04E13.720p.WEB-DL.AAC2.0.H.264-Cyphanix", "Cyphanix")] + [TestCase("Movie.Name.S02E01.720p.WEB-DL.DD5.1.H.264.mkv", null)] [TestCase("Series Title S01E01 Episode Title", null)] - [TestCase("The Colbert Report - 2014-06-02 - Thomas Piketty.mkv", null)] - [TestCase("Real Time with Bill Maher S12E17 May 23, 2014.mp4", null)] - [TestCase("Reizen Waes - S01E08 - Transistri\u00EB, Zuid-Osseti\u00EB en Abchazi\u00EB SDTV.avi", null)] - [TestCase("Simpsons 10x11 - Wild Barts Cant Be Broken [rl].avi", "rl")] - [TestCase("[ www.Torrenting.com ] - Revenge.S03E14.720p.HDTV.X264-DIMENSION", "DIMENSION")] - [TestCase("Seed S02E09 HDTV x264-2HD [eztv]-[rarbg.com]", "2HD")] - [TestCase("7s-atlantis-s02e01-720p.mkv", null)] - [TestCase("The.Middle.720p.HEVC.x265-MeGusta-Pre", "MeGusta")] - [TestCase("Blue.Bloods.S08E05.The.Forgotten.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-Rakuv", "NTb")] - [TestCase("Lie.To.Me.S01E13.720p.BluRay.x264-SiNNERS-Rakuvfinhel", "SiNNERS")] - [TestCase("Who.is.America.S01E01.INTERNAL.720p.HDTV.x264-aAF-RakuvUS-Obfuscated", "aAF")] - [TestCase("Haunted.Hayride.2018.720p.WEBRip.DDP5.1.x264-NTb-postbot", "NTb")] - [TestCase("Haunted.Hayride.2018.720p.WEBRip.DDP5.1.x264-NTb-xpost", "NTb")] - [TestCase("2.Broke.Girls.S02E24.1080p.AMZN.WEBRip.DD5.1.x264-CasStudio-AsRequested", "CasStudio")] - [TestCase("Billions.S04E11.Lamster.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-AlternativeToRequested", "NTb")] - [TestCase("NCIS.S16E04.Third.Wheel.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-GEROV", "NTb")] - [TestCase("Will.and.Grace.S10E06.Kid.n.Play.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-Z0iDS3N", "NTb")] - [TestCase("Absolute.Power.S02E06.The.House.of.Lords.DVDRip.x264-MaG-Chamele0n", "MaG")] - [TestCase("Kai.Po.Che.2013.1080p.BluRay.REMUX.AVC.DTS-X.MA.5.1", null)] - [TestCase("Kai.Po.Che.2013.1080p.BluRay.REMUX.AVC.DTS-MA.5.1", null)] - [TestCase("Kai.Po.Che.2013.1080p.BluRay.REMUX.AVC.DTS-ES.MA.5.1", null)] + [TestCase("Movie.Name- 2014-06-02 - Some Movie.mkv", null)] + [TestCase("Movie.Name S12E17 May 23, 2014.mp4", null)] + [TestCase("Movie.Name - S01E08 - Transistri\u00EB, Zuid-Osseti\u00EB en Abchazi\u00EB SDTV.avi", null)] + [TestCase("Movie.Name 10x11 - Wild Movies Cant Be Broken [rl].avi", "rl")] + [TestCase("[ www.Torrenting.com ] - Movie.Name.S03E14.720p.HDTV.X264-DIMENSION", "DIMENSION")] + [TestCase("Movie.Name S02E09 HDTV x264-2HD [eztv]-[rarbg.com]", "2HD")] + [TestCase("7s-Movie.Name-s02e01-720p.mkv", null)] + [TestCase("The.Movie.Name.720p.HEVC.x265-MeGusta-Pre", "MeGusta")] + [TestCase("Blue.Movie.Name.S08E05.The.Movie.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-Rakuv", "NTb")] + [TestCase("Movie.Name.S01E13.720p.BluRay.x264-SiNNERS-Rakuvfinhel", "SiNNERS")] + [TestCase("Movie.Name.S01E01.INTERNAL.720p.HDTV.x264-aAF-RakuvUS-Obfuscated", "aAF")] + [TestCase("Movie.Name.2018.720p.WEBRip.DDP5.1.x264-NTb-postbot", "NTb")] + [TestCase("Movie.Name.2018.720p.WEBRip.DDP5.1.x264-NTb-xpost", "NTb")] + [TestCase("Movie.Name.S02E24.1080p.AMZN.WEBRip.DD5.1.x264-CasStudio-AsRequested", "CasStudio")] + [TestCase("Movie.Name.S04E11.Lamster.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-AlternativeToRequested", "NTb")] + [TestCase("Movie.Name.S16E04.Third.Wheel.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-GEROV", "NTb")] + [TestCase("Movie.NameS10E06.Kid.n.Play.1080p.AMZN.WEB-DL.DDP5.1.H.264-NTb-Z0iDS3N", "NTb")] + [TestCase("Movie.Name.S02E06.The.House.of.Lords.DVDRip.x264-MaG-Chamele0n", "MaG")] + [TestCase("Some.Movie.2013.1080p.BluRay.REMUX.AVC.DTS-X.MA.5.1", null)] + [TestCase("Some.Movie.2013.1080p.BluRay.REMUX.AVC.DTS-MA.5.1", null)] + [TestCase("Movie.Name.2013.1080p.BluRay.REMUX.AVC.DTS-ES.MA.5.1", null)] [TestCase("SomeMovie.1080p.BluRay.DTS-X.264.-D-Z0N3.mkv", "D-Z0N3")] [TestCase("SomeMovie.1080p.BluRay.DTS.x264.-Blu-bits.mkv", "Blu-bits")] [TestCase("SomeMovie.1080p.BluRay.DTS.x264.-DX-TV.mkv", "DX-TV")] @@ -54,41 +54,41 @@ namespace NzbDrone.Core.Test.ParserTests Parser.Parser.ParseReleaseGroup(title).Should().Be(expected); } - [TestCase("Stargirl (2020) [2160p x265 10bit S82 Joy]", "Joy")] - [TestCase("The Matrix Revolutions (2003) (2160p BluRay X265 HEVC 10bit HDR AAC 7.1 Tigole) [QxR]", "Tigole")] + [TestCase("Movie Name (2020) [2160p x265 10bit S82 Joy]", "Joy")] + [TestCase("Movie Name (2003) (2160p BluRay X265 HEVC 10bit HDR AAC 7.1 Tigole) [QxR]", "Tigole")] [TestCase("Ode To Joy (2009) (2160p BluRay x265 10bit HDR Joy)", "Joy")] - [TestCase("Shingeki No Kyojin a.k.a. Attack on Titan S04E03 The Door of Hope 1080p NF WEB-DL DDP2.0 x264-E.N.D", "E.N.D")] - [TestCase("The Curse of Audrey Earnshaw (2020) [1080p] [WEBRip] [5.1] [YTS.MX]", "YTS.MX")] - [TestCase("The.Nightingale.2018.1080p.Blu-ray.Remux.AVC.DTS-HD.MA.5.1.KRaLiMaRKo", "KRaLiMaRKo")] + [TestCase("Movie Name (2001) 1080p NF WEB-DL DDP2.0 x264-E.N.D", "E.N.D")] + [TestCase("Movie Name (2020) [1080p] [WEBRip] [5.1] [YTS.MX]", "YTS.MX")] + [TestCase("Movie Name.2018.1080p.Blu-ray.Remux.AVC.DTS-HD.MA.5.1.KRaLiMaRKo", "KRaLiMaRKo")] [TestCase("Ode To Joy (2009) (2160p BluRay x265 10bit HDR FreetheFish)", "FreetheFish")] [TestCase("Ode To Joy (2009) (2160p BluRay x265 10bit HDR afm72)", "afm72")] [TestCase("Ode To Joy (2009) (2160p BluRay x265 10bit HDR)", null)] - [TestCase("Marvel One Shot - Item 47 (2012) (1080p BluRay x265 HEVC 10bit AC3 2.0 Anna)", "Anna")] - [TestCase("Anna (2019) (1080p BluRay x265 HEVC 10bit AAC 7.1 Q22 Joy)", "Joy")] - [TestCase("Parasite (2019) (2160p BluRay x265 HEVC 10bit HDR AAC 7.1 Bandi)", "Bandi")] - [TestCase("Robin Williams - Weapons of Self Destruction (2009) (1080p HDTV x265 HEVC 10bit AAC 2.0 Ghost)", "Ghost")] - [TestCase("Ghost in the Shell (2017) (1080p BluRay x265 HEVC 10bit AAC 7.1 Tigole)", "Tigole")] - [TestCase("Mission - Impossible - Ghost Protocol (2011) (1080p BluRay x265 HEVC 10bit AAC 7.1 Tigole)", "Tigole")] - [TestCase("Ghost (1990) (1080p BluRay x265 HEVC 10bit AAC 5.1 Silence)", "Silence")] - [TestCase("Happy End (1999) (1080p BluRay x265 HEVC 10bit AAC 5.1 Korean Kappa)", "Kappa")] - [TestCase("Harry Potter and the Order of the Phoenix (2007) Open Matte (1080p AMZN WEB-DL x265 HEVC 10bit AAC 5.1 MONOLITH)", "MONOLITH")] - [TestCase("Spider-Man Far from Home (2019) (1080p BluRay x265 HEVC 10bit DTS 7.1 Qman)", "Qman")] - [TestCase("Suicide Squad - Hell to Pay (2018) + Extras (1080p BluRay x265 HEVC 10bit AAC 5.1 RZeroX)", "RZeroX")] - [TestCase("Gravity (2013) (Diamond Luxe Edition) + Extras (1080p BluRay x265 HEVC 10bit EAC3 7.1 SAMPA)", "SAMPA")] - [TestCase("Wonder Woman 1984 (2020) (1080p AMZN WEB-DL x265 HEVC 10bit EAC3 5.1 Silence)", "Silence")] - [TestCase("The.Silence.of.the.Lambs.1991.REMASTERED.720p.10bit.BluRay.6CH.x265.HEVC-PSA", "PSA")] - [TestCase("Seoul Station 2016 (1080p BluRay x265 HEVC 10bit DDP 5.1 theincognito)", "theincognito")] - [TestCase("Harry Potter - A History of Magic (2017) (1080p AMZN WEB-DL x265 HEVC 10bit EAC3 2.0 t3nzin)", "t3nzin")] - [TestCase("John Wick Chapter 3 Parabellum (2019) (1080p BluRay x265 HEVC 10bit AAC 7.1 Vyndros)", "Vyndros")] + [TestCase("Movie Name (2012) (1080p BluRay x265 HEVC 10bit AC3 2.0 Anna)", "Anna")] + [TestCase("Movie Name (2019) (1080p BluRay x265 HEVC 10bit AAC 7.1 Q22 Joy)", "Joy")] + [TestCase("Movie Name (2019) (2160p BluRay x265 HEVC 10bit HDR AAC 7.1 Bandi)", "Bandi")] + [TestCase("Movie Name (2009) (1080p HDTV x265 HEVC 10bit AAC 2.0 Ghost)", "Ghost")] + [TestCase("Movie Name in the Movie (2017) (1080p BluRay x265 HEVC 10bit AAC 7.1 Tigole)", "Tigole")] + [TestCase("Mission - Movie Name - Movie Protocol (2011) (1080p BluRay x265 HEVC 10bit AAC 7.1 Tigole)", "Tigole")] + [TestCase("Movie Name (1990) (1080p BluRay x265 HEVC 10bit AAC 5.1 Silence)", "Silence")] + [TestCase("Happy Movie Name (1999) (1080p BluRay x265 HEVC 10bit AAC 5.1 Korean Kappa)", "Kappa")] + [TestCase("Movie Name (2007) Open Matte (1080p AMZN WEB-DL x265 HEVC 10bit AAC 5.1 MONOLITH)", "MONOLITH")] + [TestCase("Movie-Name (2019) (1080p BluRay x265 HEVC 10bit DTS 7.1 Qman)", "Qman")] + [TestCase("Movie Name - Hell to Ticket (2018) + Extras (1080p BluRay x265 HEVC 10bit AAC 5.1 RZeroX)", "RZeroX")] + [TestCase("Movie Name (2013) (Diamond Luxe Edition) + Extras (1080p BluRay x265 HEVC 10bit EAC3 7.1 SAMPA)", "SAMPA")] + [TestCase("Movie Name 1984 (2020) (1080p AMZN WEB-DL x265 HEVC 10bit EAC3 5.1 Silence)", "Silence")] + [TestCase("The.Movie.of.the.Name.1991.REMASTERED.720p.10bit.BluRay.6CH.x265.HEVC-PSA", "PSA")] + [TestCase("Movie Name 2016 (1080p BluRay x265 HEVC 10bit DDP 5.1 theincognito)", "theincognito")] + [TestCase("Movie Name - A History of Movie (2017) (1080p AMZN WEB-DL x265 HEVC 10bit EAC3 2.0 t3nzin)", "t3nzin")] + [TestCase("Movie Name (2019) (1080p BluRay x265 HEVC 10bit AAC 7.1 Vyndros)", "Vyndros")] public void should_parse_release_group(string title, string expected) { Parser.Parser.ParseReleaseGroup(title).Should().Be(expected); } - [TestCase("Marvels.Daredevil.S02E04.720p.WEBRip.x264-SKGTV English", "SKGTV")] - [TestCase("Marvels.Daredevil.S02E04.720p.WEBRip.x264-SKGTV_English", "SKGTV")] - [TestCase("Marvels.Daredevil.S02E04.720p.WEBRip.x264-SKGTV.English", "SKGTV")] + [TestCase("Some.Movie.S02E04.720p.WEBRip.x264-SKGTV English", "SKGTV")] + [TestCase("Some.Movie.S02E04.720p.WEBRip.x264-SKGTV_English", "SKGTV")] + [TestCase("Some.Movie.S02E04.720p.WEBRip.x264-SKGTV.English", "SKGTV")] //[TestCase("", "")] public void should_not_include_language_in_release_group(string title, string expected) @@ -96,41 +96,40 @@ namespace NzbDrone.Core.Test.ParserTests Parser.Parser.ParseReleaseGroup(title).Should().Be(expected); } - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-RP", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-RP-RP", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Obfuscation", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-NZBgeek", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-1", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-sample.mkv", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Scrambled", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-postbot", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-xpost", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Rakuv", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Rakuv02", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Rakuvfinhel", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Obfuscated", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-WhiteRev", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-BUYMORE", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-AsRequested", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-AlternativeToRequested", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-GEROV", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Z0iDS3N", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-Chamele0n", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-4P", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-EVO-4Planet", "EVO")] - [TestCase("Rambo.Last.Blood.2019.1080p.BDRip.X264.AC3-DON-AlteZachen", "DON")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-RP", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-RP-RP", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Obfuscation", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-NZBgeek", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-1", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-sample.mkv", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Scrambled", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-postbot", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-xpost", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Rakuv", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Rakuv02", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Rakuvfinhel", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Obfuscated", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-WhiteRev", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-BUYMORE", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-AsRequested", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-AlternativeToRequested", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-GEROV", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Z0iDS3N", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-Chamele0n", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-4P", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-EVO-4Planet", "EVO")] + [TestCase("Some.Movie.2019.1080p.BDRip.X264.AC3-DON-AlteZachen", "DON")] public void should_not_include_repost_in_release_group(string title, string expected) { Parser.Parser.ParseReleaseGroup(title).Should().Be(expected); } - [TestCase("[FFF] Invaders of the Rokujouma!! - S01E11 - Someday, With Them", "FFF")] - [TestCase("[HorribleSubs] Invaders of the Rokujouma!! - S01E12 - Invasion Going Well!!", "HorribleSubs")] - [TestCase("[Anime-Koi] Barakamon - S01E06 - Guys From Tokyo", "Anime-Koi")] - [TestCase("[Anime-Koi] Barakamon - S01E07 - A High-Grade Fish", "Anime-Koi")] - [TestCase("[Anime-Koi] Kami-sama Hajimemashita 2 - 01 [h264-720p][28D54E2C]", "Anime-Koi")] + [TestCase("[FFF] Invaders of the Movies!! - S01E11 - Someday, With Movies", "FFF")] + [TestCase("[HorribleSubs] Invaders of the Movies!! - S01E12 - Movies Going Well!!", "HorribleSubs")] + [TestCase("[Anime-Koi] Movies - S01E06 - Guys From Movies", "Anime-Koi")] + [TestCase("[Anime-Koi] Movies - S01E07 - A High-Grade Movies", "Anime-Koi")] + [TestCase("[Anime-Koi] Kami-sama Movies 2 - 01 [h264-720p][28D54E2C]", "Anime-Koi")] - //[TestCase("Tokyo.Ghoul.02x01.013.HDTV-720p-Anime-Koi", "Anime-Koi")] //[TestCase("", "")] public void should_parse_anime_release_groups(string title, string expected) { diff --git a/src/NzbDrone.Core.Test/ParserTests/SceneCheckerFixture.cs b/src/NzbDrone.Core.Test/ParserTests/SceneCheckerFixture.cs index 36943382f..09ff6deba 100644 --- a/src/NzbDrone.Core.Test/ParserTests/SceneCheckerFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/SceneCheckerFixture.cs @@ -1,4 +1,4 @@ -using FluentAssertions; +using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Parser; @@ -7,12 +7,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestFixture] public class SceneCheckerFixture { - //[TestCase("South.Park.S04E13.Helen.Keller.The.Musical.720p.WEBRip.AAC2.0.H.264-GC")] - //[TestCase("Robot.Chicken.S07E02.720p.WEB-DL.DD5.1.H.264-pcsyndicate")] - //[TestCase("Archer.2009.720p.WEB-DL.DD5.1.H.264-iT00NZ")] - //[TestCase("30.Rock.S04E17.720p.HDTV.X264-DIMENSION")] - //[TestCase("30.Rock.S04.720p.HDTV.X264-DIMENSION")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate")] public void should_return_true_for_scene_names(string title) { SceneChecker.IsSceneTitle(title).Should().BeTrue(); @@ -22,18 +17,18 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("S08E05 - Virtual In-Stanity.With.Dots [WEBDL-720p]")] [TestCase("Something")] [TestCase("86de66b7ef385e2fa56a3e41b98481ea1658bfab")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-", Description = "no group")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL-Pate", Description = "no quality")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-", Description = "no group")] + [TestCase("Some.Movie.2..2013.German.DTS.DL-Pate", Description = "no quality")] [TestCase("2013.German.DTS.DL.BluRay.x264-Pate", Description = "no movietitle")] public void should_return_false_for_non_scene_names(string title) { SceneChecker.IsSceneTitle(title).Should().BeFalse(); } - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate_", "Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "underscore at the end")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate.mkv", "Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "file extension")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate.nzb", "Kick.Ass.2.2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "file extension")] - [TestCase("Kick.Ass.2.2013.German.DTS.DL.【720p】.BluRay.x264-Pate.nzb", "Kick.Ass.2.2013.German.DTS.DL.[720p].BluRay.x264-Pate", Description = "brackets")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate_", "Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "underscore at the end")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate.mkv", "Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "file extension")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate.nzb", "Some.Movie.2..2013.German.DTS.DL.720p.BluRay.x264-Pate", Description = "file extension")] + [TestCase("Some.Movie.2..2013.German.DTS.DL.【720p】.BluRay.x264-Pate.nzb", "Some.Movie.2..2013.German.DTS.DL.[720p].BluRay.x264-Pate", Description = "brackets")] public void should_correctly_parse_scene_names(string title, string result) { SceneChecker.GetSceneTitle(title).Should().Be(result);