public List <Tuple <int, string, List <IonLight>, List <int> > > AlignChromatograms(List <Tuple <int, string, List <IonLight>, List <int> > > theData) { List <Tuple <int, string, List <IonLight>, List <int> > > alignedData = new List <Tuple <int, string, List <IonLight>, List <int> > >(); Tuple <double, double>[] massCenter = new Tuple <double, double> [theData.Count]; //First we obtaine a weighted sum to find the center of each chromatogram for (int i = 0; i < theData.Count; i++) { double w = theData[i].Item3.Sum(a => a.Intensity); double wCenter = theData[i].Item3.Sum(a => a.RetentionTime * a.Intensity) / w; massCenter[i] = new Tuple <double, double>(wCenter, w); } //Now we determine the center of alignment double retentionCenter = massCenter.Sum(a => a.Item1 * a.Item2) / massCenter.Sum(a => a.Item2); //And now we shift everyone to this center for (int i = 0; i < massCenter.Length; i++) { //This delta double thisDelta = retentionCenter - massCenter[i].Item1; List <IonLight> alignedIons = (from ion in theData[i].Item3 select new IonLight(ion.MZ, ion.Intensity, ion.RetentionTime + thisDelta, ion.ScanNumber)).ToList(); alignedData.Add(new Tuple <int, string, List <IonLight>, List <int> >(theData[i].Item1, theData[i].Item2, alignedIons, theData[i].Item4)); } return(alignedData); }
public void DoubleSumOnTwoTuple() { var sut = new Tuple<double, double>(1, 2); double expected = sut.AsEnumerable().Cast<double>().Sum(); double actual = sut.Sum(x => (double) x); Assert.AreEqual(expected, actual); }
public void ShortSumOnTwoTuple() { var sut = new Tuple<short, short>(1, 2); short expected = sut.AsEnumerable().Cast<short>().Sum(); short actual = sut.Sum(x => (short) x); Assert.AreEqual(expected, actual); }
public TableRenderer(string title, Tuple<string, int>[] headers) { _title = title; _headers = headers; _totalWidth = _headers.Sum(h => h.Item2) + (_headers.Count() - 1) * 3; _rowTemplate = "| " + String.Join(" | ", _headers.Select((h, i) => "{" + i + ",-" + h.Item2 + "}").ToArray()) + " |"; }
public void IntegerSumOnTwoTuple() { var sut = new Tuple<int, int>(1, 2); int expected = sut.AsEnumerable().Cast<int>().Sum(); int actual = sut.Sum(x => (int) x); Assert.AreEqual(expected, actual); }
public void ShortSumOnSevenTuple() { var sut = new Tuple<short, short, short, short, short, short, short>(1, 2, 3, 4, 5, 6, 7); short expected = sut.AsEnumerable().Cast<short>().Sum(); short actual = sut.Sum(x => (short) x); Assert.AreEqual(expected, actual); }
public void LongSumOnTwoTuple() { var sut = new Tuple<long, long>(1, 2); long expected = sut.AsEnumerable().Cast<long>().Sum(); long actual = sut.Sum(x => (long) x); Assert.AreEqual(expected, actual); }
public void ShortSumOnOneTuple() { var sut = new Tuple<short>(1); short expected = sut.AsEnumerable().Cast<short>().Sum(); short actual = sut.Sum(x => (short) x); Assert.AreEqual(expected, actual); }
public void DecimalSumOnTwoTuple() { var sut = new Tuple<decimal, decimal>(1, 2); decimal expected = sut.AsEnumerable().Cast<decimal>().Sum(); decimal actual = sut.Sum(x => (decimal) x); Assert.AreEqual(expected, actual); }
public static double Average <T1, T2>(this Tuple <T1, T2> value, Func <object, double> func) { Contract.Requires <ArgumentNullException>(value != null); Contract.Requires <ArgumentNullException>(func != null); double average = value.Sum(func) / value.Count(); return(average); }
public void DecimalSumOnOneTuple() { var sut = new Tuple <decimal>(1); decimal expected = sut.AsEnumerable().Cast <decimal>().Sum(); decimal actual = sut.Sum(x => (decimal)x); Assert.AreEqual(expected, actual); }
public void LongSumOnOneTuple() { var sut = new Tuple <long>(1); long expected = sut.AsEnumerable().Cast <long>().Sum(); long actual = sut.Sum(x => (long)x); Assert.AreEqual(expected, actual); }
public void LongSumOnSevenTuple() { var sut = new Tuple <long, long, long, long, long, long, long>(1, 2, 3, 4, 5, 6, 7); long expected = sut.AsEnumerable().Cast <long>().Sum(); long actual = sut.Sum(x => (long)x); Assert.AreEqual(expected, actual); }
public void DoubleSumOnOneTuple() { var sut = new Tuple <double>(1); double expected = sut.AsEnumerable().Cast <double>().Sum(); double actual = sut.Sum(x => (double)x); Assert.AreEqual(expected, actual); }
public void DoubleSumOnSevenTuple() { var sut = new Tuple <double, double, double, double, double, double, double>(1, 2, 3, 4, 5, 6, 7); double expected = sut.AsEnumerable().Cast <double>().Sum(); double actual = sut.Sum(x => (double)x); Assert.AreEqual(expected, actual); }
public void IntegerSumOnOneTuple() { var sut = new Tuple <int>(1); int expected = sut.AsEnumerable().Cast <int>().Sum(); int actual = sut.Sum(x => (int)x); Assert.AreEqual(expected, actual); }
public static double?Average <T1, T2, T3, T4>(this Tuple <T1, T2, T3, T4> value, Func <object, short?> func) { Contract.Requires <ArgumentNullException>(value != null); Contract.Requires <ArgumentNullException>(func != null); double?average = value.Sum(func) / (double?)value.Count(); return(average); }
public static decimal?Average <T1, T2, T3, T4, T5>(this Tuple <T1, T2, T3, T4, T5> value, Func <object, decimal?> func) { Contract.Requires <ArgumentNullException>(value != null); Contract.Requires <ArgumentNullException>(func != null); decimal?average = value.Sum(func) / value.Count(); return(average); }
public static double Average <T1, T2, T3, T4, T5, T6, T7>(this Tuple <T1, T2, T3, T4, T5, T6, T7> value, Func <object, long> func) { Contract.Requires <ArgumentNullException>(value != null); Contract.Requires <ArgumentNullException>(func != null); double average = value.Sum(func) / (double)value.Count(); return(average); }
private int InsertGuids(Tuple<Position, int>[] selections) { var sumChanges = selections.Sum(x => { scintilla.DeleteRange(x.Item1, x.Item2); scintilla.InsertText(x.Item1, Guid.NewGuid().ToString()); return GuidHelperConstants.Regexlength - x.Item2; }); return sumChanges; }
static void Main(string[] args) { // 入力の取得 const int DishCount = 5; var timeWithPaddings = new Tuple <int, int> [DishCount]; for (var i = 0; i < DishCount; i++) { var cookingTime = int.Parse(Console.ReadLine()); var padding = cookingTime % 10 == 0 ? 0 : 10 - cookingTime % 10; timeWithPaddings[i] = Tuple.Create(cookingTime, padding); } // 一番 PaddingTime の長い料理を最後に注文することで最短時間となる var maxPadding = timeWithPaddings.Max(t => t.Item2); var sum = timeWithPaddings.Sum(t => t.Item1 + t.Item2) - maxPadding; // 解答の出力 Console.WriteLine(sum); }
/// <summary> /// This tacks on from-to percent /// </summary> private static Tuple<FlagColorCategory[], int, double, double>[] BuildMaxPerFlag(Tuple<FlagColorCategory[], int>[] groups) { double sumEnumValues = groups.Sum(o => o.Item1.Length); double sumPercent = 0; var retVal = new Tuple<FlagColorCategory[], int, double, double>[groups.Length]; for (int cntr = 0; cntr < retVal.Length; cntr++) { double percent = groups[cntr].Item1.Length / sumEnumValues; retVal[cntr] = Tuple.Create(groups[cntr].Item1, groups[cntr].Item2, sumPercent, sumPercent + percent); sumPercent += percent; } return retVal; }
/// <summary> /// Sum /// </summary> public static decimal sum <T1, T2>(Tuple <decimal, decimal> self) => self.Sum();
/// <summary> /// Sum /// </summary> public static float sum <T1, T2>(Tuple <float, float> self) => self.Sum();
/// <summary> /// Sum /// </summary> public static double sum <T1, T2>(Tuple <double, double> self) => self.Sum();
/// <summary> /// Sum /// </summary> public static int sum <T1, T2>(Tuple <int, int> self) => self.Sum();
public static double Avg(Tuple<double, double>[] weightedValues) { if (weightedValues == null || weightedValues.Length == 0) { return 0; } double totalWeight = weightedValues.Sum(o => o.Item2); if (Math1D.IsNearZero(totalWeight)) { return weightedValues.Average(o => o.Item1); } double sum = weightedValues.Sum(o => o.Item1 * o.Item2); return sum / totalWeight; }