Coverage Report - eu.simuline.octave.type.OctaveLong
 
Classes in this File Line Coverage Branch Coverage Complexity
OctaveLong
87%
21/24
N/A
1
 
 1  
 /*
 2  
  * Copyright 2010 Ange Optimization ApS
 3  
  *
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  *
 8  
  *     http://www.apache.org/licenses/LICENSE-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package eu.simuline.octave.type;
 17  
 
 18  
 import eu.simuline.octave.type.matrix.AbstractGenericMatrix;
 19  
 
 20  
 import it.unimi.dsi.fastutil.longs.LongArrayList;
 21  
 
 22  
 /**
 23  
  * Represents a matrix of ints. 
 24  
  */
 25  86
 public final class OctaveLong 
 26  
     extends AbstractGenericMatrix<long[], LongArrayList>  {
 27  
 
 28  
     /**
 29  
      * Create new matrix. 
 30  
      * 
 31  
      * @param size
 32  
      */
 33  
     // used by reader 
 34  
     public OctaveLong(final int... size) {
 35  16
         super(size);
 36  16
     }
 37  
 
 38  
     /**
 39  
      * Constructor that reuses the input data. 
 40  
      * 
 41  
      * @param data
 42  
      * @param size
 43  
      */
 44  
     // used by shallowCopy, end user, tests 
 45  
     public OctaveLong(final long[] data, final int... size) {
 46  12
         super(data, size);
 47  12
     }
 48  
 
 49  
     // superfluous? 
 50  
     /**
 51  
      * Copy constructor. 
 52  
      * 
 53  
      * @param o
 54  
      */
 55  
     public OctaveLong(final OctaveLong o) {
 56  0
         super(o);
 57  0
     }
 58  
 
 59  
 
 60  
 
 61  
     protected final LongArrayList newL(final int size) {
 62  18
         LongArrayList list = new LongArrayList(size);
 63  18
         list.size(size);
 64  18
         return list;
 65  
     }
 66  
 
 67  
     protected final int initL(long[] data, final int size) {
 68  12
         this.dataL = new LongArrayList(data);
 69  12
         this.dataL.size(size);
 70  12
         return data.length;
 71  
     }
 72  
 
 73  
     protected long[] getDataA() {
 74  56
         return this.dataL.elements();
 75  
     }
 76  
 
 77  
     /**
 78  
      * Set the value resizing by need. 
 79  
      * 
 80  
      * @param value
 81  
      * @param pos
 82  
      * @see #setPlain(long, int)
 83  
      */
 84  
     public final void set(final long value, final int... pos) {
 85  30
         resizeUp(pos);
 86  30
         setPlain(value, pos2ind(pos));
 87  30
     }
 88  
 
 89  
     /**
 90  
      * Set the value assuming resize is not necessary. 
 91  
      * 
 92  
      * @param value
 93  
      * @param pos
 94  
      * @see #set(long, int[])
 95  
      */
 96  
     public final void setPlain(final long value, final int pos) {
 97  30
         this.dataL.set(pos, value);
 98  30
     }
 99  
 
 100  
     // api-docs inherited from AbstractGenericMatrix 
 101  
     public final void setPlain(final String value, final int pos) {
 102  24
         this.dataL.set(pos, Long.parseLong(value.trim()));
 103  24
     }
 104  
 
 105  
     /**
 106  
      * Get the value. 
 107  
      * 
 108  
      * @param pos
 109  
      * @return value at pos
 110  
      */
 111  
     public final long get(final int... pos) {
 112  24
         return this.dataL.getLong(pos2ind(pos));
 113  
     }
 114  
 
 115  
     // api-docs inherited from AbstractGenericMatrix 
 116  
     public final String getPlainString(int pos) {
 117  38
         return Long.toString(this.dataL.getLong(pos));
 118  
     }
 119  
 
 120  
 
 121  
 
 122  
     @Override
 123  
     public OctaveLong shallowCopy() {
 124  0
         return new OctaveLong(this);
 125  
     }
 126  
 
 127  
 }