testing code is important because; if the ponent implementation is altered; you need to rerun only the testing code to make sure everything works as it should。 These three pieces of code have demonstrated a plete development cycle。 Testing the Addition of Two Very Large Numbers The code and projects have been organized; but we’re missing some tests。 The current test adds two simple numbers。 Another test could be to add two really big numbers; such as 2 billion and 2 billion。 The code to test the addition of two really big numbers is shown in Figure 2…11。 Add this to Module1。vb in the TestCalculator project。 …………………………………………………………Page 61…………………………………………………………… CH A PT E R 2 ■ L E A R N I N G A B OU T 。 N E T N U M B E R AN D V A L U E T Y P E S 39 Addition result is stored in a variable 2 billion added to 2 billion Public Sub TestReallyBigNumbers() Dim total As Integer = Operations。Add(2000000000; 2000000000) If (total 4000000000) Then Console。WriteLine(〃Error found(〃 & total & _ 〃) should have been (4000000000)〃) End If End Sub Verification of addition is 4 billion If there is an error; a string is built using concatenation techniques Figure 2…11。 Testing the addition of two large numbers The test to add two very large numbers is identical to the test to add two simple numbers; except for the numbers themselves。 The error message is handled a bit differently than in the previous code; in that it is built using concatenation techniques。 In the example; a string is concatenated with an integer with a string。 Visual Basic will automatically convert the integer into a string。 Often; you will write tests where the only real difference is the data itself; not the ramifica tions of the data。 Do you think of adding two very large numbers (such as 2 billion plus 2 billion) and two smaller numbers (such as 2 plus 2) as different? No; because to humans; the major difference between 2 billion and 2 is a bunch of zeros; the result is either 4 billion or 4; which seems very trivial。 Yet with respect to a puter; 4 billion is very different from 4; as you’ll soon see。 Before you run the test; you need to add a call to it in the Main() method: Sub Main() TestSimpleAddition() TestReallyBigNumbers() Console。ReadKey() End Sub Now run the very large number test。 You will see the output shown in Figure 2…12。 What happened? The problem has to do with the addition of very large numbers that cause an overflow; which is a puter construct。 …………………………………………………………Page 62…………………………………………………………… 40 CH AP T E R 2 ■ L E A R N IN G AB OU T 。 N E T N U M B E R A N D V A L U E T Y P E S Figure 2…12。 Visual Basic Express highlighting the overflow error Understanding Problems with Numeric Numbers What you understand as numbers and what the puter understands as numbers are two pletely different things。 As a child; you learn to count starting at 1 and ending at 100; which you thought was a gargantuan number。 As you grew up; you learned about zero and numbers less than zero。 Later; you advanced to studying fractions and decimal values。 Throughout all of this learning about numbers; you considered the number 1 and the number 1。5 to be the same kind of thing—that is; numbers。 Yet to the puter; they are not the same type of values。 The reason numbers are different to puters has to do with puter efficiency and how the puter stores numbers。 For those who have learned the decimal system with place holders; you start counting at 0; continue to 9; and then the next number is a decimal increment called 10。 The decimal system is originally accredited to the Babylonians; but they used a decimal system that was sexagesimal (60 unique identifiers versus our decimal 10 unique identifiers)。 The puter has a similar counting scheme; except it is binary with only two unique identi fiers: 1 and 0。 puters have two unique identifiers because they signify two unique states: on and off。 At the heart of a puter is a transistor that has the ability to distinguish between on and off; there are no “sort of” on and “sort of” off states。 Figure 2…13 shows an example of how a puter would count to 7 using the binary system。 In theory; you could count until you die。 You have that ability because you are human and have no limits on how high you can count。 A puter does have limits; such as random…access memory (RAM); hard disk; and so on。 Specific numeric data types on a puter also have limits on how high they can count。 For example; the Integer data type that we have been using can count to only a specific number and can store only whole numbers。 Think of the different numeric data types as odometers。 Most car odometers have upper limits of 1 million miles/kilometers。 Imagine adding 900;000 and 200;000 using an odometer。 The result would be 100;000; and not the 1。1 million that you expected。 This is exactly the problem that we encountered when adding 2 billion and 2 billion。 …………………………………………………………Page 63…………………