Skip to main content
Tweeted twitter.com/#!/StackCodeReview/status/493558250147962880
added 12 characters in body
Source Link
Ben Aaronson
  • 5.8k
  • 22
  • 40
  • Am I covering my bases here?

    Am I covering my bases here?
  • What other cases am I missing?

    What other cases am I missing?
  • What would you do differently?

    using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Challenges; using System.Numerics;

    namespace ChallengesTest { [TestClass] public class PrimeTest { [TestMethod] public void SmallPrimes() { int[] numbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
    
         }
    
         [TestMethod]
         public void Negatives()
         {
             int[] numbers = { -2, -3, -5, -7, -11, -13, -17, -19, -23, -29 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void PositiveNotPrime()
         {
             int[] numbers = { 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void ZeroAndOne()
         {
             Assert.IsFalse(Numbers.isPrime(0));
             Assert.IsFalse(Numbers.isPrime(1));
         }
    
         [TestMethod]
         public void BigPrimes()
         {
             int[] numbers = {104677,104681, 104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
         }
     }
    

    }

    What would you do differently?
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Challenges;
using System.Numerics;

namespace ChallengesTest
{
    [TestClass]
    public class PrimeTest
    {
        [TestMethod]
        public void SmallPrimes()
        {
            int[] numbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsTrue(Numbers.isPrime(numbers[i]));
            }
            
        }

        [TestMethod]
        public void Negatives()
        {
            int[] numbers = { -2, -3, -5, -7, -11, -13, -17, -19, -23, -29 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsFalse(Numbers.isPrime(numbers[i]));
            }
        }

        [TestMethod]
        public void PositiveNotPrime()
        {
            int[] numbers = { 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsFalse(Numbers.isPrime(numbers[i]));
            }
        }

        [TestMethod]
        public void ZeroAndOne()
        {
            Assert.IsFalse(Numbers.isPrime(0));
            Assert.IsFalse(Numbers.isPrime(1));
        }

        [TestMethod]
        public void BigPrimes()
        {
            int[] numbers = {104677,104681, 104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729 };
            
            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsTrue(Numbers.isPrime(numbers[i]));
            }
        }
    }
}
  • Am I covering my bases here?

  • What other cases am I missing?

  • What would you do differently?

    using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Challenges; using System.Numerics;

    namespace ChallengesTest { [TestClass] public class PrimeTest { [TestMethod] public void SmallPrimes() { int[] numbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
    
         }
    
         [TestMethod]
         public void Negatives()
         {
             int[] numbers = { -2, -3, -5, -7, -11, -13, -17, -19, -23, -29 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void PositiveNotPrime()
         {
             int[] numbers = { 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void ZeroAndOne()
         {
             Assert.IsFalse(Numbers.isPrime(0));
             Assert.IsFalse(Numbers.isPrime(1));
         }
    
         [TestMethod]
         public void BigPrimes()
         {
             int[] numbers = {104677,104681, 104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
         }
     }
    

    }

  • Am I covering my bases here?
  • What other cases am I missing?
  • What would you do differently?
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Challenges;
using System.Numerics;

namespace ChallengesTest
{
    [TestClass]
    public class PrimeTest
    {
        [TestMethod]
        public void SmallPrimes()
        {
            int[] numbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsTrue(Numbers.isPrime(numbers[i]));
            }
            
        }

        [TestMethod]
        public void Negatives()
        {
            int[] numbers = { -2, -3, -5, -7, -11, -13, -17, -19, -23, -29 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsFalse(Numbers.isPrime(numbers[i]));
            }
        }

        [TestMethod]
        public void PositiveNotPrime()
        {
            int[] numbers = { 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25 };

            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsFalse(Numbers.isPrime(numbers[i]));
            }
        }

        [TestMethod]
        public void ZeroAndOne()
        {
            Assert.IsFalse(Numbers.isPrime(0));
            Assert.IsFalse(Numbers.isPrime(1));
        }

        [TestMethod]
        public void BigPrimes()
        {
            int[] numbers = {104677,104681, 104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729 };
            
            for (var i = 0; i < numbers.Length; i++)
            {
                Assert.IsTrue(Numbers.isPrime(numbers[i]));
            }
        }
    }
}
Source Link
RubberDuck
  • 31.2k
  • 6
  • 74
  • 177

Unit Testing for isPrime function

I've decided that I want to take a stab at test first programming. So, before I tackled writing an isPrime function, I wrote this unit test. It's my first and I'm not sure I'm doing this right.

I was thinking that I might want to extract the loops to just two methods that I would pass an array to. One for Assert.IsTrue and one for Assert.IsFalse, but I wasn't sure if that was a good idea in a unit test.

  • Am I covering my bases here?

  • What other cases am I missing?

  • What would you do differently?

    using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Challenges; using System.Numerics;

    namespace ChallengesTest { [TestClass] public class PrimeTest { [TestMethod] public void SmallPrimes() { int[] numbers = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
    
         }
    
         [TestMethod]
         public void Negatives()
         {
             int[] numbers = { -2, -3, -5, -7, -11, -13, -17, -19, -23, -29 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void PositiveNotPrime()
         {
             int[] numbers = { 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsFalse(Numbers.isPrime(numbers[i]));
             }
         }
    
         [TestMethod]
         public void ZeroAndOne()
         {
             Assert.IsFalse(Numbers.isPrime(0));
             Assert.IsFalse(Numbers.isPrime(1));
         }
    
         [TestMethod]
         public void BigPrimes()
         {
             int[] numbers = {104677,104681, 104683, 104693, 104701, 104707, 104711, 104717, 104723, 104729 };
    
             for (var i = 0; i < numbers.Length; i++)
             {
                 Assert.IsTrue(Numbers.isPrime(numbers[i]));
             }
         }
     }
    

    }