Tuesday, June 14, 2016

Add Unitest to C# Console Project

Pertama-tama silahkan buat project console baru...Setelah selese, klik kanan dibagian solution projectnya seperti terlihat di bawah :
Setelah selese ngebuat project unitestnya... Klik kanan di project unit test itu... terus pilih "Add - Reference "
Terus pilih tab "Solution" terus centang project utama kita kyk gini :
Naaah...dibagian reference tar kliatan :
Sampe sini kita udah bisa masukin assert2 dkk... :D
Kyk gini :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestCodingBat
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {        
            Assert.AreEqual(3, Codingbat_csharp.Program.powerN(3, 1));
        }


        [TestMethod]
        public void TestMethod2()
        {
            Assert.AreEqual(1000, Codingbat_csharp.Program.powerN(10, 3));
        }


        [TestMethod]
        public void TestMethod3()
        {
            Assert.AreEqual(32, Codingbat_csharp.Program.powerN(2, 5));
        }
    }
}

Klu kita run :


Hasilnya :



Yeeeei... sekiaan...semoga bermanfaat.. :)

PowerN - Recursion

Given base and n that are both 1 or more, compute recursively (no loops) the value of base to the n power, so powerN(3, 2) is 9 (3 squared).

powerN(3, 1) → 3
powerN(3, 2) → 9
powerN(3, 3) → 27

Java :
1
2
3
4
5
public int powerN(int base, int n) {
  if(n == 0 ) return 1;
  if(n == 1) return base;
  return base*powerN(base,n-1);
}

Output :


Oooowh...btw... We can use DinamycProgramming style here.... It will gonna look like this :
1
2
3
4
5
6
7
8
9
public int powerN(int base, int n) {
 int[] hasil = new int[n];
 hasil[0] = base;
 for(int i=1; i<n; i++)
 {
   hasil[i] = base*hasil[i-1];
 }
 return hasil[n-1];
}

The output will be same, but DinamycProgramming style is faster than recursive at a big n... :D