1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16// @ts-ignore 17import {SportRuler} from "../../../../../dist/trace/component/trace/timer-shaft/SportRuler.js" 18// @ts-ignore 19import {TimerShaftElement} from "../../../../../dist/trace/component/trace/TimerShaftElement.js"; 20// @ts-ignore 21import {Flag} from "../../../../../dist/trace/component/trace/timer-shaft/Flag.js"; 22// @ts-ignore 23import {TraceRow, RangeSelectStruct} from "../../../../../dist/trace/component/trace/base/TraceRow.js"; 24 25describe('SportRuler Test', () => { 26 const canvas = document.createElement('canvas'); 27 canvas.width = 1; 28 canvas.height = 1; 29 const ctx = canvas.getContext('2d'); 30 31 document.body.innerHTML = '<timer-shaft-element id="timerShaftEL"><timer-shaft-element>' 32 33 let timerShaftElement = document.querySelector('#timerShaftEL') as TimerShaftElement; 34 35 let sportRuler = new SportRuler(timerShaftElement, { 36 x: 20, 37 y: 20, 38 width: 100, 39 height: 100, 40 }, () => { 41 }, () => { 42 }); 43 44 sportRuler.range = { 45 totalNS: 20, 46 startX: 0, 47 endX: 10, 48 startNS: 10, 49 endNS: 20, 50 xs: [], 51 xsTxt: [], 52 } 53 54 it('SportRulerTest04', function () { 55 expect(sportRuler.mouseMove({ 56 offsetY: 20, 57 offsetX: 20, 58 })).toBeUndefined(); 59 }); 60 61 it('SportRulerTest05', function () { 62 let ranges = sportRuler.range; 63 expect(ranges.endNS).toBe(20); 64 }) 65 66 it('SportRulerTest07', function () { 67 sportRuler.flagList.splice = jest.fn(() => true) 68 expect(sportRuler.modifyFlagList('remove')).toBeUndefined(); 69 }) 70 71 it('SportRulerTest08', function () { 72 let numbers = Array<number>(); 73 numbers.push(12) 74 numbers.push(56) 75 sportRuler.flagList = [{ 76 totalNS: 10000, 77 startX: 0, 78 endX: 1000, 79 startNS: 0, 80 endNS: 10000, 81 xs: numbers, 82 xsTxt: ['s', 'f'] 83 }] 84 sportRuler.flagList.xs = jest.fn(()=> numbers) 85 let flags = new Array<Flag>() 86 flags.push({ 87 x: 0, 88 y: 0, 89 width: 0, 90 height: 0, 91 time: 20, 92 color: "", 93 selected: false, 94 text: "", 95 hidden: false, 96 type: "", 97 }) 98 sportRuler.flagList = flags; 99 100 let rangeSelectStruct = new RangeSelectStruct(); 101 rangeSelectStruct.startNS = 20 102 rangeSelectStruct.endX = 1000 103 rangeSelectStruct.startNS = 20 104 rangeSelectStruct.endNS = 200 105 expect(sportRuler.draw()).toBeUndefined(); 106 }) 107 108 it('SportRulerTest09', function () { 109 let flags = new Array<Flag>() 110 flags.push({ 111 x: 0, 112 y: 0, 113 width: 0, 114 height: 0, 115 time: 20, 116 color: "", 117 selected: false, 118 text: "", 119 hidden: false, 120 type: "", 121 }) 122 sportRuler.flagList = flags; 123 sportRuler.edgeDetection = jest.fn(()=> true) 124 125 expect(sportRuler.mouseUp({offsetX: 20})).toBeUndefined(); 126 }) 127 128 it('SportRulerTest10', function () { 129 sportRuler.draw = jest.fn(() => true) 130 expect(sportRuler.mouseMove({ 131 offsetX: 10000, 132 offsetY: 10000 133 })).toBeUndefined(); 134 }); 135 136 it('SportRulerTest11', function () { 137 let range = sportRuler.range; 138 expect(sportRuler.range.endNS).toBe(20) 139 }) 140 141 it('SportRulerTest12', function () { 142 let flags = new Array<Flag>() 143 flags.push({ 144 x: 0, 145 y: 0, 146 width: 0, 147 height: 0, 148 time: 0, 149 color: "", 150 selected: false, 151 text: "", 152 hidden: false, 153 type: "", 154 }) 155 sportRuler.flagList = flags; 156 sportRuler.drawTriangle(1000, 'triangle'); 157 }) 158 159 it('SportRulerTest13', function () { 160 let flags = new Array<Flag>() 161 flags.push({ 162 x: 0, 163 y: 0, 164 width: 0, 165 height: 0, 166 time: 1000, 167 color: "", 168 selected: false, 169 text: "", 170 hidden: false, 171 type: "triangle", 172 }) 173 sportRuler.flagList = flags; 174 sportRuler.drawTriangle(1000, 'triangle'); 175 }) 176 177 it('SportRulerTest14', function () { 178 let flags = new Array<Flag>() 179 flags.push({ 180 x: 0, 181 y: 0, 182 width: 0, 183 height: 0, 184 time: 0, 185 color: "", 186 selected: false, 187 text: "", 188 hidden: false, 189 type: "triangle", 190 }) 191 sportRuler.flagList = flags; 192 sportRuler.drawTriangle(1000, 'square'); 193 }) 194 195 it('SportRulerTest22', function () { 196 let flags = new Array<Flag>() 197 flags.push({ 198 x: 0, 199 y: 0, 200 width: 0, 201 height: 0, 202 time: 0, 203 color: "", 204 selected: false, 205 text: "", 206 hidden: false, 207 type: "triangle", 208 }) 209 sportRuler.flagList = flags; 210 sportRuler.drawTriangle(1000, 'inverted'); 211 212 }) 213 214 it('SportRulerTest17', function () { 215 sportRuler.removeTriangle('inverted') 216 }) 217 218 it('SportRulerTest18', function () { 219 sportRuler.flagList.findIndex = jest.fn(() => 0) 220 sportRuler.removeTriangle('square') 221 }) 222 223 it('SportRulerTest19', function () { 224 sportRuler.drawInvertedTriangle(100, '#000000') 225 }) 226 227 it('SportRulerTest20', function () { 228 sportRuler.drawFlag(100, '#000000', false, 'text', '') 229 }) 230 231 it('SportRulerTest23', function () { 232 sportRuler.drawFlag(100, '#000000', false, 'text', 'triangle') 233 }) 234 235 it('SportRulerTest21', function () { 236 let flags = new Array<Flag>() 237 flags.push({ 238 x: 0, 239 y: 0, 240 width: 0, 241 height: 0, 242 time: 20, 243 color: "", 244 selected: false, 245 text: "", 246 hidden: false, 247 type: "", 248 }) 249 sportRuler.flagList = flags; 250 sportRuler.flagList.find = jest.fn(()=> false) 251 expect(sportRuler.mouseUp({offsetX: 20})).toBeUndefined(); 252 }) 253 254 it('SportRulerTest24', function () { 255 sportRuler.drawSlicesMark(null,null) 256 257 }) 258 259 it('SportRulerTest25', function () { 260 sportRuler.setSlicesMark(null,null) 261 262 }) 263 264}) 265