Clover icon

Coverage Report

  1. Project Clover database Thu Nov 28 2024 11:45:30 GMT
  2. Package jalview.ext.android

File SparseShortArrayTest.java

 

Code metrics

0
30
3
1
125
75
9
0.3
10
3
3

Classes

Class Line # Actions
SparseShortArrayTest 31 30 9
0.818181881.8%
 

Contributing tests

This file is covered by 2 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.ext.android;
22   
23    import static org.testng.Assert.assertEquals;
24    import static org.testng.Assert.fail;
25   
26    import jalview.gui.JvOptionPane;
27   
28    import org.testng.annotations.BeforeClass;
29    import org.testng.annotations.Test;
30   
 
31    public class SparseShortArrayTest
32    {
33   
 
34  1 toggle @BeforeClass(alwaysRun = true)
35    public void setUpJvOptionPane()
36    {
37  1 JvOptionPane.setInteractiveMode(false);
38  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
39    }
40   
 
41  1 toggle @Test(groups = "Functional")
42    public void testPut()
43    {
44  1 SparseShortArray counter = new SparseShortArray();
45   
46    /*
47    * either key or value may be in the range of short
48    */
49  1 counter.put(Short.MAX_VALUE, Short.MIN_VALUE);
50  1 counter.put(Short.MIN_VALUE, Short.MAX_VALUE);
51   
52    // put a too large value
53  1 try
54    {
55  1 counter.put(0, Short.MAX_VALUE + 1);
56  0 fail("Expected exception");
57    } catch (ArithmeticException e)
58    {
59    // expected;
60    }
61   
62    // put a too small value
63  1 try
64    {
65  1 counter.put(1, Short.MIN_VALUE - 1);
66  0 fail("Expected exception");
67    } catch (ArithmeticException e)
68    {
69    // expected;
70    }
71   
72    // put a too large key
73  1 try
74    {
75  1 counter.put(Short.MAX_VALUE + 1, 0);
76  0 fail("Expected exception");
77    } catch (ArithmeticException e)
78    {
79    // expected;
80    }
81   
82    // put a too small key
83  1 try
84    {
85  1 counter.put(Short.MIN_VALUE - 1, 2);
86  0 fail("Expected exception");
87    } catch (ArithmeticException e)
88    {
89    // expected;
90    }
91    }
92   
 
93  1 toggle @Test(groups = "Functional")
94    public void testAdd()
95    {
96  1 SparseShortArray counter = new SparseShortArray();
97   
98  1 assertEquals(counter.add('P', 2), 2);
99  1 assertEquals(counter.add('P', 3), 5);
100  1 counter.put('Q', 7);
101  1 assertEquals(counter.add('Q', 4), 11);
102   
103    // increment giving overflow
104  1 counter.put('x', Short.MAX_VALUE);
105  1 try
106    {
107  1 counter.add('x', 1);
108  0 fail("Expected exception");
109    } catch (ArithmeticException e)
110    {
111    // expected;
112    }
113   
114    // decrement giving underflow
115  1 counter.put('y', Short.MIN_VALUE);
116  1 try
117    {
118  1 counter.add('y', -1);
119  0 fail("Expected exception");
120    } catch (ArithmeticException e)
121    {
122    // expected;
123    }
124    }
125    }