30 Ocak 2019 Çarşamba

TestClass Anotasyonu

Örnek
Şöyle yaparız
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace StackQuestions
{
  [TestClass]
  public class ValidParentheses
  {
    [TestMethod]
    public void OpenOpenClosedClosedMixTest()
    {
      ...
      bool result = ...;
      Assert.IsFalse(result);
    }
    [TestMethod]
    public void OnePairTest()
    {
      bool result = ...;
      Assert.IsTrue(result);
    }
  }
}

20 Ocak 2019 Pazar

Math Sınıfı

Cos metodu
Şöyle yaparız.
Double x = Math.Cos (...);
Pow metodu
Double döner.
Örnek
Şöyle yaparız.
Double x = Math.Pow (10.0, -2)
Örnek
Şöyle yaparız.
var pow = (int)Math.Pow(10, 10);
PI Alanı
Şöyle yaparız.
Math.PI
Round metodu - sayı + 
Şöyle yaparız. Çıktı olarak drst: 31.2 alırız.
double dd = 31.15;

var drst = Math.Round(dd, 1, MidpointRounding.AwayFromZero);
Round metodu - sayı + MidpointRounding
double veya decimal parametre alır. float parametre almaz. Yuvarlama sonucu Platform = Any CPU veya Platform = x64 olmasına göre değişebilir.

Örnek
Şöyle yaparız.
double d = -2.6114289999999998;
double d1 = Math.Round(d, 7);
double d2 = Math.Round(d, 5);
double d3 = Math.Round(d, 6);
Örnek
En yakın çift sayıya yuvarlamak için şöyle yaparız. Elimizdeki sayı 3 olsun, yarısı 1.5 eder ancak yukaru yuvarlayınca 2 eder. Bunu 2 ile çarpınca 4 elde ederiz.
double source = 1123.0;

// 1124.0
double result = Math.Round(source / 2, MidpointRounding.AwayFromZero) * 2;
Round metodu - sayı + küsurat hanesi 
En yakın sayıya yuvarlar.

Örnek
En yakın noktalı sayıya yuvarlamak için şöyle yaparız.
public static class FloatExtension
{
  public static decimal RoundFirstSignificantDigit(this decimal input)
  {
     int precision = 0;
     var val = input;
     while (Math.Abs(val) < 1)
    {
      val *= 10;
      precision++;
    }
    return Math.Round(input, precision);
  }
}
Kullanmak için şöyle yaparız.
decimal input = 0.00001;
input.RoundFirstSignificantDigit();
Çıktı olarak şunu alırız.
0.001 -> 0.001
0.00367 -> 0.004
0.00337 -> 0.003
0.000000564 -> 0.0000006
0.00000432907543029 ->  0.000004
Truncate metodu
double değeri long değere cast etmekden iyidir.
Örnek
Şöyle yaparız.
double RoundToNearestEven(double value) =>
    Math.Truncate(value) + Math.Truncate(value) % 2;
Sin metodu
Şöyle yaparız.
Double x = Math.Sin (...);
Bu metodlar radyan değer aldıkları için derece ile kullanabilmek için şöyle yaparız.
public static class Helper
{
  public static double Sin(double degrees) => Math.Sin(degrees * Math.PI / 180.0);
  public static double Cos(double degrees) => Math.Cos(degrees * Math.PI / 180.0);
  public static double Tan(double degrees) => Math.Tan(degrees * Math.PI / 180.0);
}