Switch to ExifDirectory from Property

This commit is contained in:
2025-04-06 18:23:57 -07:00
parent 3f7affceef
commit c7ded16e50
50 changed files with 2647 additions and 1846 deletions

View File

@ -54,6 +54,55 @@ public partial class UnitTestHardCoded
_PropertyConfiguration = propertyConfiguration;
}
[TestMethod]
public void TestMethodId()
{
int id;
id = 748161839;
string imageTrueTruePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: true, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700398", imageTrueTruePositive);
string imageTrueFalsePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: true, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700398", imageTrueFalsePositive);
string imageFalseFalsePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: false, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700397", imageFalseFalsePositive);
string imageFalseTruePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: false, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700399", imageFalseTruePositive);
try
{ string videoTrueTruePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: true, hasDateTimeOriginal: true, index: null); }
catch (Exception)
{ }
try
{ string videoTrueFalsePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: true, hasDateTimeOriginal: false, index: null); }
catch (Exception)
{ }
string videoFalseFalsePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: false, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700395", videoFalseFalsePositive);
string videoFalseTruePositive = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: false, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700396", videoFalseTruePositive);
id = -748161839;
string imageTrueTrueNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: true, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700392", imageTrueTrueNegative);
string imageTrueFalseNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: true, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700392", imageTrueFalseNegative);
string imageFalseFalseNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: false, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700393", imageFalseFalseNegative);
string imageFalseTrueNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".jpg", hasIgnoreKeyword: false, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700391", imageFalseTrueNegative);
try
{ string videoTrueTrueNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: true, hasDateTimeOriginal: true, index: null); }
catch (Exception)
{ }
try
{ string videoTrueFalseNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: true, hasDateTimeOriginal: false, index: null); }
catch (Exception)
{ }
string videoFalseFalseNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: false, hasDateTimeOriginal: false, index: null);
Assert.AreEqual("816184700390", videoFalseFalseNegative);
string videoFalseTrueNegative = IId.GetPaddedId(_PropertyConfiguration, id, ".mov", hasIgnoreKeyword: false, hasDateTimeOriginal: true, index: null);
Assert.AreEqual("816184700394", videoFalseTrueNegative);
NonThrowTryCatch();
}
private static void NonThrowTryCatch()
{
try
@ -61,18 +110,6 @@ public partial class UnitTestHardCoded
catch (Exception) { }
}
[TestMethod]
public void TestMethodNull()
{
Assert.IsFalse(_AppSettings is null);
Assert.IsFalse(_Configuration is null);
Assert.IsFalse(_IsEnvironment is null);
Assert.IsFalse(_WorkingDirectory is null);
Assert.IsFalse(_ConfigurationRoot is null);
Assert.IsFalse(_PropertyConfiguration is null);
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodDel()
{
@ -86,30 +123,6 @@ public partial class UnitTestHardCoded
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodGetApproximateYears()
{
string personDisplayDirectory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A2)People/{_Git}", "/{}/^/Sydney Dupray^9");
if (Directory.Exists(Directory.GetDirectoryRoot(personDisplayDirectory)) && Directory.Exists(personDisplayDirectory))
{
char numberSign = '#';
string? minusOne = null;
char[] personCharacters = ['^'];
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
string personBirthdayFormat = _Configuration.PropertyConfiguration.PersonBirthdayFormat;
string[] personKeyDirectories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
List<(string, PersonBirthday)> collection = IPersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectoryName);
int? approximateYears = IAge.GetApproximateYears(personCharacters, personDisplayDirectoryName);
if (approximateYears is null)
throw new NullReferenceException(nameof(approximateYears));
Assert.IsNotNull(approximateYears);
Assert.IsTrue(approximateYears.Value == 9);
string? change = IPersonContainer.VerifyAge(numberSign, personDisplayDirectory, minusOne, personDisplayDirectoryName, approximateYears, collection);
Assert.IsNull(change);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodDel2()
{
@ -123,14 +136,35 @@ public partial class UnitTestHardCoded
NonThrowTryCatch();
}
private static (string?, string, string) Get(string[] segments)
[TestMethod]
public void TestMethodNull()
{
(string?, string, string) result;
if ((!segments[0].Contains('#') && (segments[3].Contains('~') || segments[3].Contains('#'))) || (segments[0].Contains('#') && !segments[3].Contains('#')))
result = new(null, segments[3], segments[4]);
else
result = new(segments[0], segments[3], segments[4]);
return result;
Assert.IsNotNull(_AppSettings);
Assert.IsNotNull(_Configuration);
Assert.IsNotNull(_IsEnvironment);
Assert.IsNotNull(_WorkingDirectory);
Assert.IsNotNull(_ConfigurationRoot);
Assert.IsNotNull(_PropertyConfiguration);
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRename()
{
// string $directory = "D:/2-Images-B/Not-Copy-Copy-{_Git}";
string directory = $"D:/1-Images-A/Images-{_Git}";
// string $directory = "D:/2-Images-B/Not-Copy-Copy-{_Git}";
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string[] directories = Directory.GetDirectories(directory, "*;*", SearchOption.AllDirectories);
foreach (string subDirectory in directories.OrderByDescending(l => l.Length - l.Replace(@"\", string.Empty).Length))
{
if (!subDirectory.EndsWith(";9"))
continue;
Directory.Move(subDirectory, $"{subDirectory[..^2]} !9");
}
}
NonThrowTryCatch();
}
[TestMethod]
@ -189,64 +223,14 @@ public partial class UnitTestHardCoded
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameAbandoned()
private static (string?, string, string) Get(string[] segments)
{
string directory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A2)People/{_Git}", "/{}/!/Abandoned");
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string checkFile;
string[] files = Directory.GetFiles(directory, "*.abd", SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
File.Move(file, checkFile);
}
Assert.IsTrue(true);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameDelete()
{
string directory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A)Property/{_Git}", "/{}");
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string checkFile;
string[] files = Directory.GetFiles(directory, "*.del", SearchOption.AllDirectories);
foreach (string file in files)
{
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
File.Move(file, checkFile);
}
Assert.IsTrue(true);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameOld()
{
string directory = $"D:/1-Images-A/Images-{_Git}-Results/E)Distance/{_Git}/()";
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string checkFile;
string[] files = Directory.GetFiles(directory, "*.old", SearchOption.AllDirectories);
foreach (string file in files)
{
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
File.Move(file, checkFile);
}
Assert.IsTrue(true);
}
NonThrowTryCatch();
(string?, string, string) result;
if ((!segments[0].Contains('#') && (segments[3].Contains('~') || segments[3].Contains('#'))) || (segments[0].Contains('#') && !segments[3].Contains('#')))
result = new(null, segments[3], segments[4]);
else
result = new(segments[0], segments[3], segments[4]);
return result;
}
[TestMethod]
@ -285,33 +269,59 @@ public partial class UnitTestHardCoded
}
[TestMethod]
public void TestMethodRename()
public void TestMethodRenameOld()
{
// string $directory = "D:/2-Images-B/Not-Copy-Copy-{_Git}";
string directory = $"D:/1-Images-A/Images-{_Git}";
// string $directory = "D:/2-Images-B/Not-Copy-Copy-{_Git}";
string directory = $"D:/1-Images-A/Images-{_Git}-Results/E)Distance/{_Git}/()";
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string[] directories = Directory.GetDirectories(directory, "*;*", SearchOption.AllDirectories);
foreach (string subDirectory in directories.OrderByDescending(l => l.Length - l.Replace(@"\", string.Empty).Length))
string checkFile;
string[] files = Directory.GetFiles(directory, "*.old", SearchOption.AllDirectories);
foreach (string file in files)
{
if (!subDirectory.EndsWith(";9"))
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
Directory.Move(subDirectory, $"{subDirectory[..^2]} !9");
File.Move(file, checkFile);
}
Assert.IsTrue(true);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameForUnknown()
public void TestMethodImmichAsset()
{
string directory = $"D:/1-Images-A/Images-{_Git}-Results/E)Distance/{_Git}/(RectInt-2023-06-19-less-0.99)";
if (!string.IsNullOrEmpty(_Configuration.ImmichAssetsFile) && File.Exists(_Configuration.ImmichAssetsFile))
{
Dictionary<string, ImmichAsset> keyValuePairs = [];
string json = File.ReadAllText(_Configuration.ImmichAssetsFile);
ImmichAsset[]? immichAssets = JsonSerializer.Deserialize(json, ImmichAssetCollectionSourceGenerationContext.Default.ImmichAssetArray);
if (immichAssets is not null)
{
foreach (ImmichAsset immichAsset in immichAssets)
keyValuePairs.Add(immichAsset.OriginalPath, immichAsset);
}
Assert.IsTrue(keyValuePairs.Count > 0);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameDelete()
{
string directory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A)Property/{_Git}", "/{}");
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string[] files = Directory.GetFiles(directory, "*.unk", SearchOption.AllDirectories);
string checkFile;
string[] files = Directory.GetFiles(directory, "*.del", SearchOption.AllDirectories);
foreach (string file in files)
File.Move(file, file[..^4]);
{
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
File.Move(file, checkFile);
}
Assert.IsTrue(true);
}
NonThrowTryCatch();
}
@ -347,19 +357,58 @@ public partial class UnitTestHardCoded
}
[TestMethod]
public void TestMethodImmichAsset()
public void TestMethodRenameAbandoned()
{
if (!string.IsNullOrEmpty(_Configuration.ImmichAssetsFile) && File.Exists(_Configuration.ImmichAssetsFile))
string directory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A2)People/{_Git}", "/{}/!/Abandoned");
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
Dictionary<string, ImmichAsset> keyValuePairs = [];
string json = File.ReadAllText(_Configuration.ImmichAssetsFile);
ImmichAsset[]? immichAssets = JsonSerializer.Deserialize(json, ImmichAssetCollectionSourceGenerationContext.Default.ImmichAssetArray);
if (immichAssets is not null)
string checkFile;
string[] files = Directory.GetFiles(directory, "*.abd", SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
foreach (ImmichAsset immichAsset in immichAssets)
keyValuePairs.Add(immichAsset.OriginalPath, immichAsset);
checkFile = file[..^4];
if (File.Exists(checkFile))
continue;
File.Move(file, checkFile);
}
Assert.IsTrue(keyValuePairs.Count > 0);
Assert.IsTrue(true);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodRenameForUnknown()
{
string directory = $"D:/1-Images-A/Images-{_Git}-Results/E)Distance/{_Git}/(RectInt-2023-06-19-less-0.99)";
if (Directory.Exists(Path.GetPathRoot(directory)) && Directory.Exists(directory))
{
string[] files = Directory.GetFiles(directory, "*.unk", SearchOption.AllDirectories);
foreach (string file in files)
File.Move(file, file[..^4]);
}
NonThrowTryCatch();
}
[TestMethod]
public void TestMethodGetApproximateYears()
{
string personDisplayDirectory = string.Concat($"D:/1-Images-A/Images-{_Git}-Results/A2)People/{_Git}", "/{}/^/Sydney Dupray^9");
if (Directory.Exists(Directory.GetDirectoryRoot(personDisplayDirectory)) && Directory.Exists(personDisplayDirectory))
{
char numberSign = '#';
string? minusOne = null;
char[] personCharacters = ['^'];
string personDisplayDirectoryName = Path.GetFileName(personDisplayDirectory);
string personBirthdayFormat = _Configuration.PropertyConfiguration.PersonBirthdayFormat;
string[] personKeyDirectories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
List<(string, PersonBirthday)> collection = IPersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectoryName);
int? approximateYears = IAge.GetApproximateYears(personCharacters, personDisplayDirectoryName);
if (approximateYears is null)
throw new NullReferenceException(nameof(approximateYears));
Assert.IsNotNull(approximateYears);
Assert.AreEqual(9, approximateYears.Value);
string? change = IPersonContainer.VerifyAge(numberSign, personDisplayDirectory, minusOne, personDisplayDirectoryName, approximateYears, collection);
Assert.IsNull(change);
}
NonThrowTryCatch();
}