lots of exercises in java... from https://github.com/exercism/java

NucleotideTest.java 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import static org.assertj.core.api.Assertions.assertThat;
  2. import static org.assertj.core.api.Assertions.entry;
  3. import org.junit.Test;
  4. public class NucleotideTest {
  5. @Test
  6. public void testEmptyDnaStringHasNoAdenosine() {
  7. DNA dna = new DNA("");
  8. assertThat(dna.count('A')).isEqualTo(0);
  9. }
  10. @Test
  11. public void testEmptyDnaStringHasNoNucleotides() {
  12. DNA dna = new DNA("");
  13. assertThat(dna.nucleotideCounts()).hasSize(4).contains(
  14. entry('A', 0),
  15. entry('C', 0),
  16. entry('G', 0),
  17. entry('T', 0)
  18. );
  19. }
  20. @Test
  21. public void testRepetitiveCytidineGetsCounted() {
  22. DNA dna = new DNA("CCCCC");
  23. assertThat(dna.count('C')).isEqualTo(5);
  24. }
  25. @Test
  26. public void testRepetitiveSequenceWithOnlyGuanosine() {
  27. DNA dna = new DNA("GGGGGGGG");
  28. assertThat(dna.nucleotideCounts()).hasSize(4).contains(
  29. entry('A', 0),
  30. entry('C', 0),
  31. entry('G', 8),
  32. entry('T', 0)
  33. );
  34. }
  35. @Test
  36. public void testCountsOnlyThymidine() {
  37. DNA dna = new DNA("GGGGGTAACCCGG");
  38. assertThat(dna.count('T')).isEqualTo(1);
  39. }
  40. @Test
  41. public void testCountsANucleotideOnlyOnce() {
  42. DNA dna = new DNA("CGATTGGG");
  43. dna.count('T');
  44. assertThat(dna.count('T')).isEqualTo(2);
  45. }
  46. @Test
  47. public void testDnaCountsDoNotChangeAfterCountingAdenosine() {
  48. DNA dna = new DNA("GATTACA");
  49. dna.count('A');
  50. assertThat(dna.nucleotideCounts()).hasSize(4).contains(
  51. entry('A', 3),
  52. entry('C', 1),
  53. entry('G', 1),
  54. entry('T', 2)
  55. );
  56. }
  57. @Test(expected = IllegalArgumentException.class)
  58. public void testValidatesNucleotides() {
  59. DNA dna = new DNA("GACT");
  60. dna.count('X');
  61. }
  62. @Test
  63. public void testCountsAllNucleotides() {
  64. String s = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC";
  65. DNA dna = new DNA(s);
  66. assertThat(dna.nucleotideCounts()).hasSize(4).contains(
  67. entry('A', 20),
  68. entry('C', 12),
  69. entry('G', 17),
  70. entry('T', 21)
  71. );
  72. }
  73. }