Clover icon

Coverage Report

  1. Project Clover database Mon Nov 18 2024 09:56:54 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 22 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  7627 toggle public ContactListImpl(ContactListProviderI list)
43    {
44  7627 clist = list;
45    }
46   
 
47  0 toggle @Override
48    public int getPosition()
49    {
50  0 return clist.getPosition();
51    }
52   
 
53  4652931 toggle @Override
54    public double getContactAt(int column)
55    {
56  4652931 return clist.getContactAt(column);
57    }
58   
 
59  4291272 toggle @Override
60    public int getContactHeight()
61    {
62  4291272 return clist.getContactHeight();
63    }
64   
 
65  143760 toggle @Override
66    public ContactRange getRangeFor(int from_column, int to_column)
67    {
68    // TODO: consider caching ContactRange for a particular call ?
69  143760 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  143760 if (from_column < 0)
75    {
76  0 from_column = 0;
77    }
78  143760 if (to_column >= getContactHeight())
79    {
80  0 to_column = getContactHeight() - 1;
81    }
82  143760 ContactRange cr = new ContactRange();
83  143760 cr.setFrom_column(from_column);
84  143760 cr.setTo_column(to_column);
85  143760 double tot = 0;
86  585864 for (int i = from_column; i <= to_column; i++)
87    {
88  442106 double contact = getContactAt(i);
89  442106 tot += contact;
90  442117 if (i == from_column)
91    {
92  143759 cr.setMin(contact);
93  143759 cr.setMax(contact);
94  143759 cr.setMinPos(i);
95  143758 cr.setMaxPos(i);
96    }
97    else
98    {
99  298361 if (cr.getMax() < contact)
100    {
101  69090 cr.setMax(contact);
102  69090 cr.setMaxPos(i);
103    }
104  298361 if (cr.getMin() < contact)
105    {
106  69090 cr.setMin(contact);
107  69090 cr.setMinPos(i);
108    }
109    }
110    }
111  143758 if (tot > 0 && to_column > from_column)
112    {
113  121859 cr.setMean(tot / (1 + to_column - from_column));
114    }
115    else
116    {
117  21899 cr.setMean(tot);
118    }
119  143758 return cr;
120    }
121   
 
122  143714 toggle @Override
123    public int[] getMappedPositionsFor(int cStart, int cEnd)
124    {
125  143714 return clist.getMappedPositionsFor(cStart, cEnd);
126    }
127   
 
128  3592 toggle @Override
129    public Color getColourForGroup()
130    {
131  3592 return clist.getColourForGroup();
132    }
133    }