πの計算を行う。
@@ -0,0 +1,88 @@ | ||
1 | +Imports Microsoft.VisualStudio.TestTools.UnitTesting | |
2 | + | |
3 | +Imports CalcPI | |
4 | + | |
5 | + | |
6 | + | |
7 | +'''<summary> | |
8 | +'''PiTest のテスト クラスです。すべての | |
9 | +'''PiTest 単体テストをここに含めます | |
10 | +'''</summary> | |
11 | +<TestClass()> _ | |
12 | +Public Class PiTest | |
13 | + | |
14 | + | |
15 | + Private testContextInstance As TestContext | |
16 | + | |
17 | + '''<summary> | |
18 | + '''現在のテストの実行についての情報および機能を | |
19 | + '''提供するテスト コンテキストを取得または設定します。 | |
20 | + '''</summary> | |
21 | + Public Property TestContext() As TestContext | |
22 | + Get | |
23 | + Return testContextInstance | |
24 | + End Get | |
25 | + Set(value As TestContext) | |
26 | + testContextInstance = Value | |
27 | + End Set | |
28 | + End Property | |
29 | + | |
30 | +#Region "追加のテスト属性" | |
31 | + ' | |
32 | + 'テストを作成するときに、次の追加属性を使用することができます: | |
33 | + ' | |
34 | + 'クラスの最初のテストを実行する前にコードを実行するには、ClassInitialize を使用 | |
35 | + '<ClassInitialize()> _ | |
36 | + 'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext) | |
37 | + 'End Sub | |
38 | + ' | |
39 | + 'クラスのすべてのテストを実行した後にコードを実行するには、ClassCleanup を使用 | |
40 | + '<ClassCleanup()> _ | |
41 | + 'Public Shared Sub MyClassCleanup() | |
42 | + 'End Sub | |
43 | + ' | |
44 | + '各テストを実行する前にコードを実行するには、TestInitialize を使用 | |
45 | + '<TestInitialize()> _ | |
46 | + 'Public Sub MyTestInitialize() | |
47 | + 'End Sub | |
48 | + ' | |
49 | + '各テストを実行した後にコードを実行するには、TestCleanup を使用 | |
50 | + '<TestCleanup()> _ | |
51 | + 'Public Sub MyTestCleanup() | |
52 | + 'End Sub | |
53 | + ' | |
54 | +#End Region | |
55 | + | |
56 | + | |
57 | + '''<summary> | |
58 | + '''Calc のテスト | |
59 | + '''</summary> | |
60 | + <TestMethod()> _ | |
61 | + Public Sub CalcTest() | |
62 | + Dim target As Pi = New Pi() | |
63 | + target.Calc() | |
64 | + Dim pistring As String = target.s.CompString | |
65 | + Assert.IsTrue(pistring.StartsWith("3." + | |
66 | +"14159265358979323846264338327950288419716939937510" + | |
67 | +"58209749445923078164062862089986280348253421170679" + | |
68 | +"82148086513282306647093844609550582231725359408128" + | |
69 | +"48111745028410270193852110555964462294895493038196" + | |
70 | +"44288109756659334461284756482337867831652712019091" + | |
71 | +"45648566923460348610454326648213393607260249141273" + | |
72 | +"72458700660631558817488152092096282925409171536436" + | |
73 | +"78925903600113305305488204665213841469519415116094" + | |
74 | +"33057270365759591953092186117381932611793105118548" + | |
75 | +"07446237996274956735188575272489122793818301194912" + | |
76 | +"98336733624406566430860213949463952247371907021798" + | |
77 | +"60943702770539217176293176752384674818467669405132" + | |
78 | +"00056812714526356082778577134275778960917363717872" + | |
79 | +"14684409012249534301465495853710507922796892589235" + | |
80 | +"42019956112129021960864034418159813629774771309960" + | |
81 | +"51870721134999999837297804995105973173281609631859" + | |
82 | +"50244594553469083026425223082533446850352619311881" + | |
83 | +"71010003137838752886587533208381420617177669147303" + | |
84 | +"59825349042875546873115956286388235378759375195778" + | |
85 | +"18577805321712268066130019278766111959092164201989")) | |
86 | + | |
87 | + End Sub | |
88 | +End Class |
@@ -1,16 +1,13 @@ | ||
1 | 1 | Module Module1 |
2 | 2 | |
3 | - Private a As LongNum | |
4 | - Private b As LongNum | |
5 | - Private s As LongNum | |
6 | - Private q As LongNum | |
7 | 3 | |
4 | + | |
8 | 5 | Sub Main() |
6 | + Dim pi As New Pi | |
9 | 7 | |
10 | 8 | Try |
11 | - | |
12 | - Calc() | |
13 | - Console.WriteLine(s.displayString) | |
9 | + pi.Calc() | |
10 | + Console.WriteLine(pi.s.displayString) | |
14 | 11 | Catch ex As Exception |
15 | 12 | Console.WriteLine("例外発生") |
16 | 13 | Console.Write(ex.ToString) |
@@ -18,28 +15,8 @@ | ||
18 | 15 | Console.ReadKey() |
19 | 16 | End Sub |
20 | 17 | |
21 | - Private Sub Calc() | |
22 | 18 | |
23 | 19 | |
24 | - a = New LongNum(16 * 5) | |
25 | - b = New LongNum(4 * 239) | |
26 | - s = New LongNum(0) | |
27 | - q = New LongNum(0) | |
28 | 20 | |
29 | - For k As Integer = 1 To LongNum.N | |
30 | - a.ldiv(5 * 5) | |
31 | - b.ldiv(239 * 239) | |
32 | - a.lsub(b, q) | |
33 | - q.ldiv(2 * k - 1, q) | |
34 | - If k Mod 2 = 0 Then | |
35 | - s.lsub(q) | |
36 | - Else | |
37 | - s.ladd(q) | |
38 | - End If | |
39 | - Next | |
40 | - | |
41 | - End Sub | |
42 | - | |
43 | - | |
44 | 21 | |
45 | 22 | End Module |
@@ -0,0 +1,30 @@ | ||
1 | +Public Class Pi | |
2 | + | |
3 | + Private a As LongNum | |
4 | + Private b As LongNum | |
5 | + Public s As LongNum | |
6 | + Private q As LongNum | |
7 | + | |
8 | + Public Sub Calc() | |
9 | + | |
10 | + | |
11 | + a = New LongNum(16 * 5) | |
12 | + b = New LongNum(4 * 239) | |
13 | + s = New LongNum(0) | |
14 | + q = New LongNum(0) | |
15 | + | |
16 | + For k As Integer = 1 To LongNum.N | |
17 | + a.ldiv(5 * 5) | |
18 | + b.ldiv(239 * 239) | |
19 | + a.lsub(b, q) | |
20 | + q.ldiv(2 * k - 1) | |
21 | + If k Mod 2 = 0 Then | |
22 | + s.lsub(q) | |
23 | + Else | |
24 | + s.ladd(q) | |
25 | + End If | |
26 | + Next | |
27 | + | |
28 | + End Sub | |
29 | + | |
30 | +End Class |
@@ -41,8 +41,7 @@ | ||
41 | 41 | |
42 | 42 | Public Function displayString() As String |
43 | 43 | Dim sb As New System.Text.StringBuilder |
44 | - sb.AppendFormat(" {0}", array(0)) | |
45 | - sb.Append(".") | |
44 | + sb.AppendFormat(" {0}.", array(0)) | |
46 | 45 | For i As Integer = 1 To array.Length - 1 |
47 | 46 | sb.AppendFormat("{0:00000000}", array(i)) |
48 | 47 | sb.Append(" ") |
@@ -53,6 +52,15 @@ | ||
53 | 52 | Return sb.ToString |
54 | 53 | End Function |
55 | 54 | |
55 | + Public Function CompString() As String | |
56 | + Dim sb As New System.Text.StringBuilder | |
57 | + sb.AppendFormat("{0}.", array(0)) | |
58 | + For i As Integer = 1 To array.Length - 1 | |
59 | + sb.AppendFormat("{0:00000000}", array(i)) | |
60 | + Next | |
61 | + Return sb.ToString | |
62 | + End Function | |
63 | + | |
56 | 64 | Public Sub ladd(opeLongNum As LongNum) |
57 | 65 | ladd(opeLongNum, Me) |
58 | 66 | End Sub |