pmxtjs 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API_REFERENCE.md +88 -0
- package/coverage/clover.xml +334 -0
- package/coverage/coverage-final.json +4 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/pmxt/BaseExchange.ts.html +256 -0
- package/coverage/lcov-report/pmxt/exchanges/Kalshi.ts.html +1132 -0
- package/coverage/lcov-report/pmxt/exchanges/Polymarket.ts.html +1456 -0
- package/coverage/lcov-report/pmxt/exchanges/index.html +131 -0
- package/coverage/lcov-report/pmxt/index.html +116 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/src/BaseExchange.ts.html +256 -0
- package/coverage/lcov-report/src/exchanges/Kalshi.ts.html +1132 -0
- package/coverage/lcov-report/src/exchanges/Polymarket.ts.html +1456 -0
- package/coverage/lcov-report/src/exchanges/index.html +131 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov.info +766 -0
- package/examples/get_event_prices.ts +37 -0
- package/examples/historical_prices.ts +117 -0
- package/examples/orderbook.ts +102 -0
- package/examples/recent_trades.ts +29 -0
- package/examples/search_events.ts +68 -0
- package/examples/search_market.ts +29 -0
- package/jest.config.js +11 -0
- package/package.json +21 -21
- package/pmxt-0.1.0.tgz +0 -0
- package/src/BaseExchange.ts +57 -0
- package/src/exchanges/Kalshi.ts +349 -0
- package/src/exchanges/Polymarket.ts +457 -0
- package/src/index.ts +5 -0
- package/src/types.ts +61 -0
- package/test/exchanges/kalshi/ApiErrors.test.ts +132 -0
- package/test/exchanges/kalshi/EmptyResponse.test.ts +44 -0
- package/test/exchanges/kalshi/FetchAndNormalizeMarkets.test.ts +56 -0
- package/test/exchanges/kalshi/LiveApi.integration.test.ts +40 -0
- package/test/exchanges/kalshi/MarketHistory.test.ts +185 -0
- package/test/exchanges/kalshi/OrderBook.test.ts +149 -0
- package/test/exchanges/kalshi/SearchMarkets.test.ts +174 -0
- package/test/exchanges/kalshi/VolumeFallback.test.ts +44 -0
- package/test/exchanges/polymarket/DataValidation.test.ts +271 -0
- package/test/exchanges/polymarket/ErrorHandling.test.ts +34 -0
- package/test/exchanges/polymarket/FetchAndNormalizeMarkets.test.ts +68 -0
- package/test/exchanges/polymarket/GetMarketsBySlug.test.ts +268 -0
- package/test/exchanges/polymarket/LiveApi.integration.test.ts +44 -0
- package/test/exchanges/polymarket/MarketHistory.test.ts +207 -0
- package/test/exchanges/polymarket/OrderBook.test.ts +167 -0
- package/test/exchanges/polymarket/RequestParameters.test.ts +39 -0
- package/test/exchanges/polymarket/SearchMarkets.test.ts +176 -0
- package/test/exchanges/polymarket/TradeHistory.test.ts +248 -0
- package/tsconfig.json +12 -0
- package/Cargo.toml +0 -15
- package/README.md +0 -47
- package/src/lib.rs +0 -6
package/API_REFERENCE.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Prediction Market API Reference
|
|
2
|
+
|
|
3
|
+
This project implements a **Unified Interface** for interacting with multiple prediction market exchanges (Kalshi, Polymarket) identically.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
All components are available directly from the `pmxt` library.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {
|
|
11
|
+
PolymarketExchange,
|
|
12
|
+
KalshiExchange
|
|
13
|
+
} from './pmxt';
|
|
14
|
+
|
|
15
|
+
const polymarket = new PolymarketExchange();
|
|
16
|
+
const kalshi = new KalshiExchange();
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 1. Unified Interface (`PredictionMarketExchange`)
|
|
20
|
+
|
|
21
|
+
All exchanges implement this core interface for discovery.
|
|
22
|
+
|
|
23
|
+
### `fetchMarkets(params?)`
|
|
24
|
+
Retrieves active markets normalized into a standard format.
|
|
25
|
+
- **Input**: `limit`, `sort` ('volume' | 'liquidity' | 'newest')
|
|
26
|
+
- **Output**: `Promise<UnifiedMarket[]>`
|
|
27
|
+
|
|
28
|
+
### `searchMarkets(query, params?)`
|
|
29
|
+
Search markets by title/description across the exchange(s).
|
|
30
|
+
- **Input**: `query` (string), `limit`
|
|
31
|
+
- **Output**: `Promise<UnifiedMarket[]>`
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Deep-Dive Interface (Exchange Only)
|
|
36
|
+
|
|
37
|
+
Methods available on specific exchange instances (`KalshiExchange`, `PolymarketExchange`) for detailed data.
|
|
38
|
+
|
|
39
|
+
### `getMarketHistory(id, params)`
|
|
40
|
+
Fetches OHLCV candlesticks.
|
|
41
|
+
- **Input**: `id`, `resolution` (1m, 1h, 1d), `start`, `end`.
|
|
42
|
+
- **Output**: `Promise<PriceCandle[]>`
|
|
43
|
+
- **Important**:
|
|
44
|
+
- **Kalshi**: Uses the Market Ticker (e.g., `FED-25DEC`). Returns **native OHLCV** (Open/High/Low/Close data is distinct).
|
|
45
|
+
- **Polymarket**: Uses the **CLOB Token ID** found in `outcome.metadata.clobTokenId`. Returns **synthetic candles** (Open=High=Low=Close) derived from raw price points.
|
|
46
|
+
|
|
47
|
+
### `getOrderBook(id)`
|
|
48
|
+
Fetches live Bids/Asks.
|
|
49
|
+
- **Input**: `id` (Ticker for Kalshi, Token ID for Polymarket).
|
|
50
|
+
- **Output**: `Promise<OrderBook>` (Normalized: "No" bids becomes "Yes" asks).
|
|
51
|
+
|
|
52
|
+
### `getTradeHistory(id, params)`
|
|
53
|
+
Fetches the "Tape" (raw transaction history).
|
|
54
|
+
- **Input**: `id`, `limit`.
|
|
55
|
+
- **Output**: `Promise<Trade[]>`
|
|
56
|
+
- **Note**:
|
|
57
|
+
- **Kalshi**: Publicly accessible for all tickers.
|
|
58
|
+
- **Polymarket**: Requires L2 Authentication (API Key). Without a key, this method will throw an unauthorized error. Use `getMarketHistory` for public historical data.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 3. Data Models
|
|
63
|
+
|
|
64
|
+
### `UnifiedMarket` (The Standard Atom)
|
|
65
|
+
```typescript
|
|
66
|
+
{
|
|
67
|
+
id: string; // Exchange-specific ID
|
|
68
|
+
title: string; // "Who will win the election?"
|
|
69
|
+
description: string; // Detailed context/rules of the market
|
|
70
|
+
outcomes: [
|
|
71
|
+
{
|
|
72
|
+
id: string,
|
|
73
|
+
label: "Trump",
|
|
74
|
+
price: 0.52,
|
|
75
|
+
priceChange24h: 0.05, // Optional: Change in price over last 24h
|
|
76
|
+
metadata: { ... } // Exchange-specific keys (clobTokenId)
|
|
77
|
+
}
|
|
78
|
+
];
|
|
79
|
+
resolutionDate: Date;
|
|
80
|
+
volume24h: number;
|
|
81
|
+
liquidity: number;
|
|
82
|
+
url: string;
|
|
83
|
+
image?: string; // Optional: Thumbnail URL
|
|
84
|
+
category?: string; // Optional: Primary category (e.g., "Politics")
|
|
85
|
+
tags?: string[]; // Optional: Searchable tags
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<coverage generated="1767901377104" clover="3.2.0">
|
|
3
|
+
<project timestamp="1767901377104" name="All files">
|
|
4
|
+
<metrics statements="313" coveredstatements="280" conditionals="334" coveredconditionals="279" methods="46" coveredmethods="36" elements="693" coveredelements="595" complexity="0" loc="313" ncloc="313" packages="2" files="3" classes="3"/>
|
|
5
|
+
<package name="src">
|
|
6
|
+
<metrics statements="4" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="0"/>
|
|
7
|
+
<file name="BaseExchange.ts" path="/Users/samueltinnerholm/Documents/GitHub/Prediction-Markets-Aggregator/pmxt/src/BaseExchange.ts">
|
|
8
|
+
<metrics statements="4" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="0"/>
|
|
9
|
+
<line num="20" count="18" type="stmt"/>
|
|
10
|
+
<line num="39" count="0" type="stmt"/>
|
|
11
|
+
<line num="47" count="0" type="stmt"/>
|
|
12
|
+
<line num="55" count="0" type="stmt"/>
|
|
13
|
+
</file>
|
|
14
|
+
</package>
|
|
15
|
+
<package name="src.exchanges">
|
|
16
|
+
<metrics statements="309" coveredstatements="279" conditionals="334" coveredconditionals="279" methods="43" coveredmethods="36"/>
|
|
17
|
+
<file name="Kalshi.ts" path="/Users/samueltinnerholm/Documents/GitHub/Prediction-Markets-Aggregator/pmxt/src/exchanges/Kalshi.ts">
|
|
18
|
+
<metrics statements="148" coveredstatements="126" conditionals="122" coveredconditionals="95" methods="20" coveredmethods="16"/>
|
|
19
|
+
<line num="1" count="8" type="stmt"/>
|
|
20
|
+
<line num="2" count="8" type="stmt"/>
|
|
21
|
+
<line num="5" count="8" type="stmt"/>
|
|
22
|
+
<line num="7" count="0" type="stmt"/>
|
|
23
|
+
<line num="9" count="34" type="stmt"/>
|
|
24
|
+
<line num="12" count="15" type="cond" truecount="2" falsecount="0"/>
|
|
25
|
+
<line num="14" count="15" type="stmt"/>
|
|
26
|
+
<line num="17" count="15" type="stmt"/>
|
|
27
|
+
<line num="20" count="15" type="stmt"/>
|
|
28
|
+
<line num="22" count="15" type="stmt"/>
|
|
29
|
+
<line num="23" count="459" type="cond" truecount="1" falsecount="1"/>
|
|
30
|
+
<line num="24" count="459" type="stmt"/>
|
|
31
|
+
<line num="25" count="1591" type="stmt"/>
|
|
32
|
+
<line num="26" count="1591" type="cond" truecount="1" falsecount="1"/>
|
|
33
|
+
<line num="27" count="1591" type="stmt"/>
|
|
34
|
+
<line num="32" count="15" type="stmt"/>
|
|
35
|
+
<line num="35" count="15" type="cond" truecount="1" falsecount="1"/>
|
|
36
|
+
<line num="36" count="0" type="stmt"/>
|
|
37
|
+
<line num="37" count="15" type="cond" truecount="1" falsecount="1"/>
|
|
38
|
+
<line num="38" count="0" type="stmt"/>
|
|
39
|
+
<line num="41" count="15" type="stmt"/>
|
|
40
|
+
<line num="44" count="0" type="stmt"/>
|
|
41
|
+
<line num="45" count="0" type="stmt"/>
|
|
42
|
+
<line num="50" count="15" type="stmt"/>
|
|
43
|
+
<line num="51" count="15" type="stmt"/>
|
|
44
|
+
<line num="52" count="15" type="stmt"/>
|
|
45
|
+
<line num="53" count="15" type="stmt"/>
|
|
46
|
+
<line num="59" count="15" type="stmt"/>
|
|
47
|
+
<line num="60" count="15" type="stmt"/>
|
|
48
|
+
<line num="62" count="15" type="stmt"/>
|
|
49
|
+
<line num="63" count="15" type="stmt"/>
|
|
50
|
+
<line num="65" count="15" type="stmt"/>
|
|
51
|
+
<line num="70" count="15" type="cond" truecount="1" falsecount="1"/>
|
|
52
|
+
<line num="72" count="15" type="stmt"/>
|
|
53
|
+
<line num="73" count="13" type="cond" truecount="2" falsecount="0"/>
|
|
54
|
+
<line num="75" count="13" type="cond" truecount="2" falsecount="0"/>
|
|
55
|
+
<line num="77" count="11" type="stmt"/>
|
|
56
|
+
<line num="80" count="11" type="cond" truecount="1" falsecount="1"/>
|
|
57
|
+
<line num="81" count="11" type="stmt"/>
|
|
58
|
+
<line num="82" count="459" type="cond" truecount="1" falsecount="1"/>
|
|
59
|
+
<line num="87" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
60
|
+
<line num="88" count="2" type="stmt"/>
|
|
61
|
+
<line num="89" count="2" type="stmt"/>
|
|
62
|
+
<line num="93" count="9" type="stmt"/>
|
|
63
|
+
<line num="94" count="9" type="stmt"/>
|
|
64
|
+
<line num="97" count="9" type="cond" truecount="1" falsecount="1"/>
|
|
65
|
+
<line num="98" count="0" type="stmt"/>
|
|
66
|
+
<line num="102" count="2" type="stmt"/>
|
|
67
|
+
<line num="103" count="2" type="stmt"/>
|
|
68
|
+
<line num="107" count="15" type="stmt"/>
|
|
69
|
+
<line num="108" count="15" type="stmt"/>
|
|
70
|
+
<line num="112" count="1591" type="cond" truecount="1" falsecount="1"/>
|
|
71
|
+
<line num="115" count="1591" type="stmt"/>
|
|
72
|
+
<line num="116" count="1591" type="cond" truecount="2" falsecount="0"/>
|
|
73
|
+
<line num="117" count="1471" type="stmt"/>
|
|
74
|
+
<line num="118" count="120" type="cond" truecount="4" falsecount="0"/>
|
|
75
|
+
<line num="119" count="84" type="stmt"/>
|
|
76
|
+
<line num="120" count="36" type="cond" truecount="2" falsecount="0"/>
|
|
77
|
+
<line num="121" count="32" type="stmt"/>
|
|
78
|
+
<line num="125" count="1591" type="stmt"/>
|
|
79
|
+
<line num="126" count="1591" type="cond" truecount="4" falsecount="0"/>
|
|
80
|
+
<line num="127" count="1533" type="cond" truecount="2" falsecount="0"/>
|
|
81
|
+
<line num="131" count="1591" type="stmt"/>
|
|
82
|
+
<line num="132" count="1591" type="cond" truecount="4" falsecount="0"/>
|
|
83
|
+
<line num="133" count="1532" type="stmt"/>
|
|
84
|
+
<line num="136" count="1591" type="stmt"/>
|
|
85
|
+
<line num="151" count="1591" type="stmt"/>
|
|
86
|
+
<line num="169" count="7" type="stmt"/>
|
|
87
|
+
<line num="170" count="7" type="stmt"/>
|
|
88
|
+
<line num="171" count="7" type="stmt"/>
|
|
89
|
+
<line num="172" count="7" type="stmt"/>
|
|
90
|
+
<line num="173" count="7" type="stmt"/>
|
|
91
|
+
<line num="174" count="56" type="cond" truecount="2" falsecount="0"/>
|
|
92
|
+
<line num="177" count="7" type="cond" truecount="2" falsecount="0"/>
|
|
93
|
+
<line num="178" count="7" type="stmt"/>
|
|
94
|
+
<line num="180" count="0" type="stmt"/>
|
|
95
|
+
<line num="181" count="0" type="stmt"/>
|
|
96
|
+
<line num="191" count="2" type="stmt"/>
|
|
97
|
+
<line num="193" count="2" type="stmt"/>
|
|
98
|
+
<line num="194" count="2" type="stmt"/>
|
|
99
|
+
<line num="195" count="2" type="stmt"/>
|
|
100
|
+
<line num="199" count="0" type="stmt"/>
|
|
101
|
+
<line num="200" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
102
|
+
<line num="202" count="0" type="stmt"/>
|
|
103
|
+
<line num="203" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
104
|
+
<line num="205" count="0" type="stmt"/>
|
|
105
|
+
<line num="206" count="0" type="stmt"/>
|
|
106
|
+
<line num="207" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
107
|
+
<line num="208" count="0" type="stmt"/>
|
|
108
|
+
<line num="212" count="0" type="stmt"/>
|
|
109
|
+
<line num="215" count="2" type="cond" truecount="3" falsecount="1"/>
|
|
110
|
+
<line num="216" count="2" type="cond" truecount="2" falsecount="0"/>
|
|
111
|
+
<line num="217" count="1" type="stmt"/>
|
|
112
|
+
<line num="219" count="1" type="cond" truecount="1" falsecount="2"/>
|
|
113
|
+
<line num="220" count="1" type="stmt"/>
|
|
114
|
+
<line num="222" count="0" type="stmt"/>
|
|
115
|
+
<line num="223" count="0" type="stmt"/>
|
|
116
|
+
<line num="228" count="11" type="stmt"/>
|
|
117
|
+
<line num="236" count="11" type="stmt"/>
|
|
118
|
+
<line num="240" count="11" type="stmt"/>
|
|
119
|
+
<line num="242" count="11" type="stmt"/>
|
|
120
|
+
<line num="243" count="11" type="stmt"/>
|
|
121
|
+
<line num="246" count="11" type="stmt"/>
|
|
122
|
+
<line num="247" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
123
|
+
<line num="248" count="1" type="stmt"/>
|
|
124
|
+
<line num="250" count="10" type="stmt"/>
|
|
125
|
+
<line num="251" count="10" type="stmt"/>
|
|
126
|
+
<line num="253" count="10" type="stmt"/>
|
|
127
|
+
<line num="255" count="10" type="stmt"/>
|
|
128
|
+
<line num="256" count="10" type="stmt"/>
|
|
129
|
+
<line num="257" count="10" type="stmt"/>
|
|
130
|
+
<line num="259" count="10" type="cond" truecount="2" falsecount="0"/>
|
|
131
|
+
<line num="260" count="1" type="stmt"/>
|
|
132
|
+
<line num="262" count="10" type="cond" truecount="2" falsecount="0"/>
|
|
133
|
+
<line num="263" count="1" type="stmt"/>
|
|
134
|
+
<line num="264" count="1" type="cond" truecount="1" falsecount="1"/>
|
|
135
|
+
<line num="265" count="0" type="stmt"/>
|
|
136
|
+
<line num="269" count="10" type="stmt"/>
|
|
137
|
+
<line num="270" count="10" type="stmt"/>
|
|
138
|
+
<line num="272" count="10" type="stmt"/>
|
|
139
|
+
<line num="273" count="9" type="cond" truecount="1" falsecount="1"/>
|
|
140
|
+
<line num="275" count="105" type="stmt"/>
|
|
141
|
+
<line num="284" count="9" type="cond" truecount="4" falsecount="0"/>
|
|
142
|
+
<line num="285" count="1" type="stmt"/>
|
|
143
|
+
<line num="287" count="8" type="stmt"/>
|
|
144
|
+
<line num="289" count="2" type="cond" truecount="4" falsecount="0"/>
|
|
145
|
+
<line num="290" count="1" type="cond" truecount="1" falsecount="2"/>
|
|
146
|
+
<line num="291" count="1" type="stmt"/>
|
|
147
|
+
<line num="293" count="1" type="stmt"/>
|
|
148
|
+
<line num="294" count="1" type="stmt"/>
|
|
149
|
+
<line num="299" count="8" type="stmt"/>
|
|
150
|
+
<line num="300" count="8" type="stmt"/>
|
|
151
|
+
<line num="301" count="8" type="stmt"/>
|
|
152
|
+
<line num="302" count="7" type="stmt"/>
|
|
153
|
+
<line num="305" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
154
|
+
<line num="310" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
155
|
+
<line num="316" count="7" type="stmt"/>
|
|
156
|
+
<line num="317" count="7" type="stmt"/>
|
|
157
|
+
<line num="319" count="7" type="stmt"/>
|
|
158
|
+
<line num="321" count="1" type="stmt"/>
|
|
159
|
+
<line num="322" count="1" type="stmt"/>
|
|
160
|
+
<line num="327" count="1" type="stmt"/>
|
|
161
|
+
<line num="328" count="1" type="stmt"/>
|
|
162
|
+
<line num="329" count="1" type="stmt"/>
|
|
163
|
+
<line num="335" count="0" type="cond" truecount="0" falsecount="2"/>
|
|
164
|
+
<line num="337" count="0" type="stmt"/>
|
|
165
|
+
<line num="345" count="1" type="stmt"/>
|
|
166
|
+
<line num="346" count="1" type="stmt"/>
|
|
167
|
+
</file>
|
|
168
|
+
<file name="Polymarket.ts" path="/Users/samueltinnerholm/Documents/GitHub/Prediction-Markets-Aggregator/pmxt/src/exchanges/Polymarket.ts">
|
|
169
|
+
<metrics statements="161" coveredstatements="153" conditionals="212" coveredconditionals="184" methods="23" coveredmethods="20"/>
|
|
170
|
+
<line num="1" count="10" type="stmt"/>
|
|
171
|
+
<line num="2" count="10" type="stmt"/>
|
|
172
|
+
<line num="5" count="10" type="stmt"/>
|
|
173
|
+
<line num="7" count="0" type="stmt"/>
|
|
174
|
+
<line num="11" count="66" type="stmt"/>
|
|
175
|
+
<line num="13" count="66" type="stmt"/>
|
|
176
|
+
<line num="16" count="24" type="cond" truecount="2" falsecount="0"/>
|
|
177
|
+
<line num="17" count="24" type="cond" truecount="2" falsecount="0"/>
|
|
178
|
+
<line num="20" count="24" type="stmt"/>
|
|
179
|
+
<line num="28" count="24" type="cond" truecount="2" falsecount="0"/>
|
|
180
|
+
<line num="29" count="2" type="stmt"/>
|
|
181
|
+
<line num="30" count="2" type="stmt"/>
|
|
182
|
+
<line num="31" count="22" type="cond" truecount="1" falsecount="1"/>
|
|
183
|
+
<line num="32" count="0" type="stmt"/>
|
|
184
|
+
<line num="33" count="0" type="stmt"/>
|
|
185
|
+
<line num="34" count="22" type="cond" truecount="1" falsecount="1"/>
|
|
186
|
+
<line num="40" count="24" type="stmt"/>
|
|
187
|
+
<line num="42" count="24" type="stmt"/>
|
|
188
|
+
<line num="46" count="22" type="stmt"/>
|
|
189
|
+
<line num="47" count="22" type="stmt"/>
|
|
190
|
+
<line num="49" count="22" type="stmt"/>
|
|
191
|
+
<line num="52" count="58" type="cond" truecount="2" falsecount="0"/>
|
|
192
|
+
<line num="54" count="57" type="stmt"/>
|
|
193
|
+
<line num="55" count="238" type="stmt"/>
|
|
194
|
+
<line num="58" count="238" type="stmt"/>
|
|
195
|
+
<line num="59" count="238" type="stmt"/>
|
|
196
|
+
<line num="61" count="238" type="stmt"/>
|
|
197
|
+
<line num="62" count="238" type="cond" truecount="3" falsecount="1"/>
|
|
198
|
+
<line num="63" count="237" type="cond" truecount="4" falsecount="0"/>
|
|
199
|
+
<line num="65" count="1" type="stmt"/>
|
|
200
|
+
<line num="69" count="238" type="stmt"/>
|
|
201
|
+
<line num="70" count="238" type="stmt"/>
|
|
202
|
+
<line num="71" count="238" type="cond" truecount="4" falsecount="0"/>
|
|
203
|
+
<line num="73" count="0" type="stmt"/>
|
|
204
|
+
<line num="77" count="238" type="stmt"/>
|
|
205
|
+
<line num="78" count="238" type="cond" truecount="4" falsecount="0"/>
|
|
206
|
+
<line num="79" count="189" type="stmt"/>
|
|
207
|
+
<line num="82" count="238" type="cond" truecount="2" falsecount="0"/>
|
|
208
|
+
<line num="83" count="237" type="stmt"/>
|
|
209
|
+
<line num="84" count="476" type="cond" truecount="2" falsecount="0"/>
|
|
210
|
+
<line num="87" count="476" type="stmt"/>
|
|
211
|
+
<line num="88" count="476" type="cond" truecount="4" falsecount="0"/>
|
|
212
|
+
<line num="89" count="189" type="stmt"/>
|
|
213
|
+
<line num="90" count="287" type="cond" truecount="4" falsecount="0"/>
|
|
214
|
+
<line num="91" count="189" type="stmt"/>
|
|
215
|
+
<line num="96" count="476" type="stmt"/>
|
|
216
|
+
<line num="97" count="476" type="cond" truecount="6" falsecount="0"/>
|
|
217
|
+
<line num="98" count="237" type="cond" truecount="2" falsecount="0"/>
|
|
218
|
+
<line num="101" count="476" type="stmt"/>
|
|
219
|
+
<line num="113" count="238" type="stmt"/>
|
|
220
|
+
<line num="126" count="1196" type="cond" truecount="2" falsecount="0"/>
|
|
221
|
+
<line num="133" count="22" type="cond" truecount="2" falsecount="0"/>
|
|
222
|
+
<line num="134" count="815" type="stmt"/>
|
|
223
|
+
<line num="135" count="20" type="cond" truecount="1" falsecount="1"/>
|
|
224
|
+
<line num="137" count="20" type="cond" truecount="1" falsecount="1"/>
|
|
225
|
+
<line num="138" count="0" type="stmt"/>
|
|
226
|
+
<line num="141" count="100" type="stmt"/>
|
|
227
|
+
<line num="145" count="22" type="stmt"/>
|
|
228
|
+
<line num="148" count="2" type="stmt"/>
|
|
229
|
+
<line num="149" count="2" type="stmt"/>
|
|
230
|
+
<line num="156" count="7" type="stmt"/>
|
|
231
|
+
<line num="158" count="7" type="stmt"/>
|
|
232
|
+
<line num="160" count="7" type="stmt"/>
|
|
233
|
+
<line num="166" count="7" type="stmt"/>
|
|
234
|
+
<line num="167" count="7" type="stmt"/>
|
|
235
|
+
<line num="168" count="36" type="cond" truecount="2" falsecount="0"/>
|
|
236
|
+
<line num="173" count="6" type="cond" truecount="2" falsecount="0"/>
|
|
237
|
+
<line num="174" count="6" type="stmt"/>
|
|
238
|
+
<line num="177" count="1" type="stmt"/>
|
|
239
|
+
<line num="178" count="1" type="stmt"/>
|
|
240
|
+
<line num="188" count="12" type="stmt"/>
|
|
241
|
+
<line num="189" count="12" type="stmt"/>
|
|
242
|
+
<line num="193" count="11" type="stmt"/>
|
|
243
|
+
<line num="194" count="11" type="cond" truecount="4" falsecount="0"/>
|
|
244
|
+
<line num="202" count="9" type="stmt"/>
|
|
245
|
+
<line num="204" count="9" type="stmt"/>
|
|
246
|
+
<line num="205" count="9" type="cond" truecount="2" falsecount="0"/>
|
|
247
|
+
<line num="207" count="8" type="stmt"/>
|
|
248
|
+
<line num="208" count="8" type="stmt"/>
|
|
249
|
+
<line num="209" count="8" type="stmt"/>
|
|
250
|
+
<line num="210" count="8" type="stmt"/>
|
|
251
|
+
<line num="211" count="8" type="stmt"/>
|
|
252
|
+
<line num="213" count="8" type="stmt"/>
|
|
253
|
+
<line num="214" count="8" type="cond" truecount="1" falsecount="3"/>
|
|
254
|
+
<line num="215" count="7" type="cond" truecount="1" falsecount="3"/>
|
|
255
|
+
<line num="216" count="7" type="cond" truecount="1" falsecount="3"/>
|
|
256
|
+
<line num="217" count="1" type="stmt"/>
|
|
257
|
+
<line num="219" count="8" type="stmt"/>
|
|
258
|
+
<line num="220" count="8" type="cond" truecount="4" falsecount="0"/>
|
|
259
|
+
<line num="222" count="8" type="cond" truecount="2" falsecount="0"/>
|
|
260
|
+
<line num="223" count="7" type="stmt"/>
|
|
261
|
+
<line num="224" count="14" type="stmt"/>
|
|
262
|
+
<line num="226" count="14" type="cond" truecount="4" falsecount="0"/>
|
|
263
|
+
<line num="227" count="7" type="cond" truecount="3" falsecount="1"/>
|
|
264
|
+
<line num="230" count="14" type="stmt"/>
|
|
265
|
+
<line num="231" count="14" type="cond" truecount="6" falsecount="0"/>
|
|
266
|
+
<line num="232" count="7" type="cond" truecount="2" falsecount="0"/>
|
|
267
|
+
<line num="235" count="14" type="stmt"/>
|
|
268
|
+
<line num="247" count="8" type="stmt"/>
|
|
269
|
+
<line num="260" count="0" type="cond" truecount="2" falsecount="0"/>
|
|
270
|
+
<line num="264" count="9" type="stmt"/>
|
|
271
|
+
<line num="267" count="1" type="stmt"/>
|
|
272
|
+
<line num="268" count="1" type="stmt"/>
|
|
273
|
+
<line num="276" count="11" type="stmt"/>
|
|
274
|
+
<line num="284" count="11" type="stmt"/>
|
|
275
|
+
<line num="293" count="12" type="cond" truecount="4" falsecount="0"/>
|
|
276
|
+
<line num="294" count="1" type="stmt"/>
|
|
277
|
+
<line num="297" count="11" type="stmt"/>
|
|
278
|
+
<line num="298" count="11" type="stmt"/>
|
|
279
|
+
<line num="299" count="11" type="stmt"/>
|
|
280
|
+
<line num="303" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
281
|
+
<line num="304" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
282
|
+
<line num="306" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
283
|
+
<line num="309" count="10" type="cond" truecount="2" falsecount="0"/>
|
|
284
|
+
<line num="311" count="10" type="stmt"/>
|
|
285
|
+
<line num="312" count="10" type="stmt"/>
|
|
286
|
+
<line num="315" count="11" type="stmt"/>
|
|
287
|
+
<line num="322" count="11" type="stmt"/>
|
|
288
|
+
<line num="326" count="10" type="cond" truecount="1" falsecount="1"/>
|
|
289
|
+
<line num="331" count="10" type="stmt"/>
|
|
290
|
+
<line num="333" count="10" type="stmt"/>
|
|
291
|
+
<line num="334" count="106" type="stmt"/>
|
|
292
|
+
<line num="335" count="106" type="stmt"/>
|
|
293
|
+
<line num="337" count="106" type="stmt"/>
|
|
294
|
+
<line num="348" count="10" type="cond" truecount="4" falsecount="0"/>
|
|
295
|
+
<line num="349" count="1" type="stmt"/>
|
|
296
|
+
<line num="352" count="9" type="stmt"/>
|
|
297
|
+
<line num="355" count="1" type="cond" truecount="3" falsecount="1"/>
|
|
298
|
+
<line num="356" count="1" type="cond" truecount="1" falsecount="2"/>
|
|
299
|
+
<line num="357" count="1" type="stmt"/>
|
|
300
|
+
<line num="359" count="0" type="stmt"/>
|
|
301
|
+
<line num="360" count="0" type="stmt"/>
|
|
302
|
+
<line num="369" count="9" type="stmt"/>
|
|
303
|
+
<line num="370" count="9" type="stmt"/>
|
|
304
|
+
<line num="374" count="8" type="stmt"/>
|
|
305
|
+
<line num="377" count="9" type="cond" truecount="2" falsecount="0"/>
|
|
306
|
+
<line num="380" count="6" type="stmt"/>
|
|
307
|
+
<line num="382" count="9" type="cond" truecount="2" falsecount="0"/>
|
|
308
|
+
<line num="385" count="6" type="stmt"/>
|
|
309
|
+
<line num="387" count="8" type="stmt"/>
|
|
310
|
+
<line num="394" count="1" type="stmt"/>
|
|
311
|
+
<line num="395" count="1" type="stmt"/>
|
|
312
|
+
<line num="409" count="14" type="cond" truecount="4" falsecount="0"/>
|
|
313
|
+
<line num="410" count="1" type="stmt"/>
|
|
314
|
+
<line num="413" count="13" type="stmt"/>
|
|
315
|
+
<line num="414" count="13" type="stmt"/>
|
|
316
|
+
<line num="419" count="13" type="cond" truecount="2" falsecount="0"/>
|
|
317
|
+
<line num="420" count="1" type="stmt"/>
|
|
318
|
+
<line num="422" count="13" type="cond" truecount="2" falsecount="0"/>
|
|
319
|
+
<line num="423" count="1" type="stmt"/>
|
|
320
|
+
<line num="426" count="13" type="stmt"/>
|
|
321
|
+
<line num="431" count="11" type="cond" truecount="1" falsecount="1"/>
|
|
322
|
+
<line num="433" count="111" type="stmt"/>
|
|
323
|
+
<line num="442" count="11" type="cond" truecount="4" falsecount="0"/>
|
|
324
|
+
<line num="443" count="2" type="stmt"/>
|
|
325
|
+
<line num="446" count="9" type="stmt"/>
|
|
326
|
+
<line num="449" count="2" type="cond" truecount="4" falsecount="0"/>
|
|
327
|
+
<line num="450" count="1" type="cond" truecount="1" falsecount="2"/>
|
|
328
|
+
<line num="451" count="1" type="stmt"/>
|
|
329
|
+
<line num="453" count="1" type="stmt"/>
|
|
330
|
+
<line num="454" count="1" type="stmt"/>
|
|
331
|
+
</file>
|
|
332
|
+
</package>
|
|
333
|
+
</project>
|
|
334
|
+
</coverage>
|