ntminer преди 5 години
родител
ревизия
9146aee2e0
променени са 3 файла, в които са добавени 28 реда и са изтрити 10 реда
  1. 13 10
      src/NTMinerDataSchemas/Core/SpeedDoubleExtension.cs
  2. 14 0
      src/UnitTests/SpeedTests.cs
  3. 1 0
      src/UnitTests/UnitTests.csproj

+ 13 - 10
src/NTMinerDataSchemas/Core/SpeedDoubleExtension.cs

@@ -61,21 +61,24 @@ namespace NTMiner.Core {
         }
 
         public static double ToNearSpeed(this double speed, double nearIt) {
+            if (nearIt == 0) {
+                return speed;
+            }
             if (speed == 0) {
                 return 0;
             }
-            if (speed > nearIt) {
-                while (speed > 10 * nearIt) {
-                    speed /= 10;
-                }
-                return speed;
+            int count = 0;
+            while (nearIt >= 1000) {
+                nearIt /= 1000;
+                count++;
             }
-            else {
-                while (speed * 10 < nearIt) {
-                    speed *= 10;
-                }
-                return speed;
+            while (speed >= 1000) {
+                speed /= 1000;
+            }
+            if (count > 0) {
+                speed = speed * count *1000;
             }
+            return speed;
         }
 
         /// <summary>

+ 14 - 0
src/UnitTests/SpeedTests.cs

@@ -0,0 +1,14 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using NTMiner.Core;
+using System;
+
+namespace NTMiner {
+    [TestClass]
+    public class SpeedTests {
+        [TestMethod]
+        public void Test1() {
+            double speed = 170 * 1000 * 1000;
+            Console.WriteLine(speed.ToNearSpeed(180));
+        }
+    }
+}

+ 1 - 0
src/UnitTests/UnitTests.csproj

@@ -102,6 +102,7 @@
     <Compile Include="ReflectionTests.cs" />
     <Compile Include="RoleTests.cs" />
     <Compile Include="SecureStringTests.cs" />
+    <Compile Include="SpeedTests.cs" />
     <Compile Include="StackTraceTests.cs" />
     <Compile Include="TestUtil.cs" />
     <Compile Include="UnitTest1.cs" />