From a163cbbf56280757105518e9570daa7680d8469a Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Fri, 15 Apr 2022 10:42:53 +0200
Subject: [PATCH] GearshiftPosition: reformatting and simplifying check for
 HasPredecessor and HasSucessor

---
 .../VectoCommon/Models/GearshiftPosition.cs   | 46 ++++---------------
 1 file changed, 9 insertions(+), 37 deletions(-)

diff --git a/VectoCommon/VectoCommon/Models/GearshiftPosition.cs b/VectoCommon/VectoCommon/Models/GearshiftPosition.cs
index 20e5f8f8d6..ebecccf612 100644
--- a/VectoCommon/VectoCommon/Models/GearshiftPosition.cs
+++ b/VectoCommon/VectoCommon/Models/GearshiftPosition.cs
@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				return false;
 			}
 
-			return  p2.TorqueConverterLocked.Value && !p1.TorqueConverterLocked.Value;
+			return p2.TorqueConverterLocked.Value && !p1.TorqueConverterLocked.Value;
 		}
 
 
@@ -82,79 +82,51 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		}
 	}
 
-	public class GearList :IEnumerable<GearshiftPosition>
+	public class GearList : IEnumerable<GearshiftPosition>
 	{
 		protected GearshiftPosition[] Entries;
 
-		public GearList(GearshiftPosition[] gearList)
-		{
-			Entries = gearList;
-		}
-
-		public bool HasPredecessor(GearshiftPosition cur)
-		{
-			var idx = Array.IndexOf(Entries, cur);
-			return idx > 0;
-		}
-
+		public GearList(GearshiftPosition[] gearList) => Entries = gearList;
 
+		public bool HasPredecessor(GearshiftPosition cur) => cur != Entries[0];
+		
 		public GearshiftPosition Predecessor(GearshiftPosition cur)
 		{
 			var idx = Array.IndexOf(Entries, cur);
-			
 			return idx <= 0 ? null : Entries[idx - 1];
 		}
 
-		public bool HasSuccessor(GearshiftPosition cur)
-        {
-			var idx = Array.IndexOf(Entries, cur);
-			return idx < Entries.Length - 1;
-		}
+		public bool HasSuccessor(GearshiftPosition cur) => cur != Entries[Entries.Length-1];
 
 		public GearshiftPosition Successor(GearshiftPosition cur)
 		{
 			var idx = Array.IndexOf(Entries, cur);
-
 			return idx < 0 || idx >= Entries.Length - 1 ? null : Entries[idx + 1];
 		}
 
 		public GearshiftPosition Successor(GearshiftPosition cur, uint numUp)
 		{
 			var idx = Array.IndexOf(Entries, cur);
-
 			if (idx < 0) {
 				return null;
 			}
-
 			var next = idx + numUp;
-
 			return next >= Entries.Length ? Entries.Last() : Entries[next];
 		}
 
 		public GearshiftPosition Predecessor(GearshiftPosition cur, uint numDown)
 		{
 			var idx = Array.IndexOf(Entries, cur);
-
 			if (idx < 0) {
 				return null;
 			}
-
 			var next = idx - numDown;
-
 			return next < 0 ? Entries.First() : Entries[next];
 		}
 
-		public IEnumerator<GearshiftPosition> GetEnumerator()
-		{
-			foreach (var entry in Entries) {
-				yield return entry;
-			}
-		}
-
-		IEnumerator IEnumerable.GetEnumerator()
-		{
-			return GetEnumerator();
-		}
+		public IEnumerator<GearshiftPosition> GetEnumerator() => Entries.AsEnumerable().GetEnumerator();
+		
+		IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
 
 		public int Distance(GearshiftPosition from, GearshiftPosition to)
 		{
-- 
GitLab