Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 13:01:17 GMT
  2. Package jalview.datamodel

File ContactListImpl.java

 

Coverage histogram

../../img/srcFileCovDistChart9.png
12% of files have more coverage

Code metrics

16
35
8
1
133
94
17
0.49
4.38
8
2.12

Classes

Class Line # Actions
ContactListImpl 33 35 17
0.830508583.1%
 

Contributing tests

This file is covered by 21 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.datamodel;
22   
23    import java.awt.Color;
24   
25    import jalview.renderer.ContactGeometry.contactInterval;
26   
27    /**
28    * helper class to compute min/max/mean for a range on a contact list
29    *
30    * @author jprocter
31    *
32    */
 
33    public class ContactListImpl implements ContactListI
34    {
35    ContactListProviderI clist;
36   
 
37  0 toggle public static ContactListI newContactList(ContactListProviderI list)
38    {
39  0 return new ContactListImpl(list);
40    }
41   
 
42  8041 toggle public ContactListImpl(ContactListProviderI list)
43    {
44  8041 clist = list;
45    }
46   
 
47  0 toggle @Override
48    public int getPosition()
49    {
50  0 return clist.getPosition();
51    }
52   
 
53  4704644 toggle @Override
54    public double getContactAt(int column)
55    {
56  4704644 return clist.getContactAt(column);
57    }
58   
 
59  4308215 toggle @Override
60    public int getContactHeight()
61    {
62  4308215 return clist.getContactHeight();
63    }
64   
 
65  160288 toggle @Override
66    public ContactRange getRangeFor(int from_column, int to_column)
67    {
68    // TODO: consider caching ContactRange for a particular call ?
69  160289 if (clist instanceof ContactListI)
70    {
71    // clist may implement getRangeFor in a more efficient way, so use theirs
72  0 return ((ContactListI) clist).getRangeFor(from_column, to_column);
73    }
74  160290 if (from_column < 0)
75    {
76  0 from_column = 0;
77    }
78  160290 if (to_column >= getContactHeight())
79    {
80  0 to_column = getContactHeight() - 1;
81    }
82  160290 ContactRange cr = new ContactRange();
83  160288 cr.setFrom_column(from_column);
84  160288 cr.setTo_column(to_column);
85  160288 double tot = 0;
86  654106 for (int i = from_column; i <= to_column; i++)
87    {
88  493823 double contact = getContactAt(i);
89  493824 tot += contact;
90  493862 if (i == from_column)
91    {
92  160289 cr.setMin(contact);
93  160289 cr.setMax(contact);
94  160289 cr.setMinPos(i);
95  160288 cr.setMaxPos(i);
96    }
97    else
98    {
99  333589 if (cr.getMax() < contact)
100    {
101  77860 cr.setMax(contact);
102  77860 cr.setMaxPos(i);
103    }
104  333588 if (cr.getMin() < contact)
105    {
106  77859 cr.setMin(contact);
107  77859 cr.setMinPos(i);
108    }
109    }
110    }
111  160285 if (tot > 0 && to_column > from_column)
112    {
113  136103 cr.setMean(tot / (1 + to_column - from_column));
114    }
115    else
116    {
117  24182 cr.setMean(tot);
118    }
119  160286 return cr;
120    }
121   
 
122  160241 toggle @Override
123    public int[] getMappedPositionsFor(int cStart, int cEnd)
124    {
125  160241 return clist.getMappedPositionsFor(cStart, cEnd);
126    }
127   
 
128  4006 toggle @Override
129    public Color getColourForGroup()
130    {
131  4006 return clist.getColourForGroup();
132    }
133    }