Skip to content

Commit c91689d

Browse files
nbollistrishorts
andauthored
Result File Operators (smith-chem-wisc#843)
* Added and tested result file operators * Cleanup * variable renaming * cleanup * made fewere changes --------- Co-authored-by: trishorts <[email protected]>
1 parent 7a28ee1 commit c91689d

File tree

2 files changed

+85
-3
lines changed

2 files changed

+85
-3
lines changed

mzLib/Readers/ExternalResults/BaseClasses/ResultFile.cs

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,48 @@ public bool CanRead(string filePath)
7979

8080
#endregion
8181

82+
#region Operators
83+
84+
public static ResultFile<TResult> operator +(ResultFile<TResult> thisFile, TResult resultToAdd)
85+
{
86+
thisFile.Results.Add(resultToAdd);
87+
return thisFile;
88+
}
89+
90+
public static ResultFile<TResult> operator +(ResultFile<TResult> thisFile, IEnumerable<TResult> resultsToAdd)
91+
{
92+
thisFile.Results.AddRange(resultsToAdd);
93+
return thisFile;
94+
}
95+
96+
public static ResultFile<TResult> operator +(ResultFile<TResult> thisFile, ResultFile<TResult> fileToAdd)
97+
{
98+
thisFile.Results.AddRange(fileToAdd.Results);
99+
return thisFile;
100+
}
101+
102+
public static ResultFile<TResult> operator -(ResultFile<TResult> thisFile, TResult resultToRemove)
103+
{
104+
thisFile.Results.Remove(resultToRemove);
105+
return thisFile;
106+
}
107+
108+
public static ResultFile<TResult> operator -(ResultFile<TResult> thisFile, IEnumerable<TResult> resultsToRemove)
109+
{
110+
foreach (var result in resultsToRemove)
111+
thisFile.Results.Remove(result);
112+
return thisFile;
113+
}
114+
115+
public static ResultFile<TResult> operator -(ResultFile<TResult> thisFile, ResultFile<TResult> fileToRemove)
116+
{
117+
foreach (var result in fileToRemove.Results)
118+
thisFile.Results.Remove(result);
119+
return thisFile;
120+
}
121+
122+
#endregion
123+
82124
#region Interface Implementations
83125

84126
public IEnumerator<TResult> GetEnumerator() => Results.GetEnumerator();
@@ -106,8 +148,5 @@ public override int GetHashCode()
106148
}
107149

108150
#endregion
109-
110-
111-
112151
}
113152
}

mzLib/Test/FileReadingTests/TestResultFile.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,48 @@ public static void TestGetEnumerator()
6464
Assert.That(feature.GetType() == typeof(Ms1Feature));
6565
}
6666
}
67+
68+
[Test]
69+
public static void TestOperatorOverloads()
70+
{
71+
string path1 = @"FileReadingTests\ExternalFileTypes\Ms1Feature_TopFDv1.6.2_ms1.feature";
72+
string path2 = @"FileReadingTests\ExternalFileTypes\Ms1Feature_FlashDeconvOpenMs3.0.0_ms1.feature";
73+
74+
Ms1FeatureFile fileToTest = new Ms1FeatureFile(path1);
75+
Ms1FeatureFile ms1Features2 = new Ms1FeatureFile(path2);
76+
77+
Ms1Feature feature = new Ms1Feature();
78+
List<Ms1Feature> features = new List<Ms1Feature> { new Ms1Feature() };
79+
80+
81+
var initialCount = fileToTest.Count();
82+
var file2Count = ms1Features2.Count();
83+
84+
// Test operator +
85+
var result1 = fileToTest + feature;
86+
Assert.That(result1.Results.Contains(feature));
87+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount + 1));
88+
89+
var result2 = fileToTest + features;
90+
Assert.That(result2.Results.Contains(feature));
91+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount + 2));
92+
93+
var result3 = fileToTest + ms1Features2;
94+
Assert.That(result3.Results.Contains(feature));
95+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount + 2 + file2Count));
96+
97+
// Test operator -
98+
var result4 = fileToTest - feature;
99+
Assert.That(!result4.Results.Contains(feature));
100+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount + 1 + file2Count));
101+
102+
var result5 = fileToTest - features;
103+
Assert.That(!result5.Results.Contains(feature));
104+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount + file2Count));
105+
106+
var result6 = fileToTest - ms1Features2;
107+
Assert.That(!result6.Results.Contains(feature));
108+
Assert.That(fileToTest.Count, Is.EqualTo(initialCount));
109+
}
67110
}
68111
}

0 commit comments

Comments
 (0)