@datagrok/hit-triage 1.9.2 → 1.10.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/CLAUDE.md +199 -0
- package/css/hit-triage.css +0 -41
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/files/pepTriage/campaigns/DMT-1/campaign.json +1 -0
- package/files/pepTriage/campaigns/DMT-1/enriched_table.csv +2262 -0
- package/files/pepTriage/templates/Demo Template.json +1 -0
- package/package.json +6 -4
- package/src/app/accordeons/new-campaign-accordeon.ts +24 -6
- package/src/app/accordeons/new-pep-triage-template-accordeon.ts +208 -0
- package/src/app/accordeons/new-template-accordeon.ts +15 -9
- package/src/app/consts.ts +23 -10
- package/src/app/dialogs/functions-dialog.ts +14 -221
- package/src/app/hit-app-base.ts +3 -6
- package/src/app/hit-design-views/info-view.ts +4 -4
- package/src/app/hit-triage-app.ts +44 -17
- package/src/app/hit-triage-views/info-view.ts +261 -44
- package/src/app/pep-triage-app.ts +87 -0
- package/src/app/pep-triage-views/info-view.ts +123 -0
- package/src/app/types.ts +20 -65
- package/src/app/utils/calculate-single-cell.ts +20 -219
- package/src/app/utils.ts +100 -123
- package/src/package-api.ts +12 -0
- package/src/package.g.ts +24 -0
- package/src/package.ts +62 -0
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
**HitTriage** (`@datagrok/hit-triage`) is a Datagrok plugin for chemists to assess hit compound quality and manage
|
|
6
|
+
molecule campaigns. It bundles **three applications** in one package:
|
|
7
|
+
|
|
8
|
+
- **Hit Triage** — Upload a molecule dataset, filter/compute properties, submit results to a chosen function, share campaigns.
|
|
9
|
+
- **Hit Design** — Sketch molecules in a spreadsheet, calculate properties, organize into stages, share campaigns.
|
|
10
|
+
- **PeptiHit** — Like Hit Design but for peptides (HELM notation). Converts sequences to atomic level via the Bio package.
|
|
11
|
+
|
|
12
|
+
Category: **Cheminformatics**. Browse paths: `Chem` (Hit Triage, Hit Design), `Peptides` (PeptiHit).
|
|
13
|
+
|
|
14
|
+
## Architecture
|
|
15
|
+
|
|
16
|
+
### Entry Point — `src/package.ts`
|
|
17
|
+
|
|
18
|
+
- Defines `HTPackage` extending `DG.Package` with an LRU SMILES cache and campaigns cache.
|
|
19
|
+
- `PackageFunctions` class registers all platform-visible functions via `@grok.decorators`:
|
|
20
|
+
- Three `@app` entries: Hit Triage, Hit Design, PeptiHit
|
|
21
|
+
- Three `@treeBrowser` entries for Browse panel integration
|
|
22
|
+
- Demo data source functions (`hitTriageDataSource` role)
|
|
23
|
+
- Demo submit function (`hitTriageSubmitFunction` role)
|
|
24
|
+
- `registerMoleculesToViD` — batch-registers all campaign molecules to V-iD dictionary
|
|
25
|
+
- `Hit Design V-iD` panel — semantic value panel for `HIT_DESIGN_VID` semtype
|
|
26
|
+
- `gasteigerRenderer` — custom grid cell renderer for Gasteiger PNG images
|
|
27
|
+
- Package settings editor widget
|
|
28
|
+
|
|
29
|
+
### App Classes (in `src/app/`)
|
|
30
|
+
|
|
31
|
+
| File | Class | Purpose |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| `hit-app-base.ts` | `HitAppBase<T>` | Abstract base for all three apps. Handles compute functions discovery, permissions, dataframe union/join, campaign locking, CSV download |
|
|
34
|
+
| `hit-triage-app.ts` | `HitTriageApp` | Hit Triage flow: InfoView → PickView (filter) → SubmitView. Uses `DG.MultiView` |
|
|
35
|
+
| `hit-design-app.ts` | `HitDesignApp<T>` | Hit Design flow: InfoView → DesignView (grid + sketching) → SubmitView. Handles molecule joining, single-cell calculations, V-iD registration, tile viewer, auto-save |
|
|
36
|
+
| `pepti-hit-app.ts` | `PeptiHitApp` | Extends `HitDesignApp` for HELM/peptide molecules. Converts HELM→atomic level via `Bio:toAtomicLevel` |
|
|
37
|
+
| `base-view.ts` | `HitBaseView<T,A>` | Base view class extending `DG.ViewBase` with campaign deletion and template access |
|
|
38
|
+
|
|
39
|
+
### Types — `src/app/types.ts`
|
|
40
|
+
|
|
41
|
+
Key types:
|
|
42
|
+
- `AppName` = `'Hit Triage' | 'Hit Design' | 'PeptiHit'`
|
|
43
|
+
- `HitTriageCampaign` — campaign state: name, template, status, filters, ingest config, save path, permissions, layout, column types
|
|
44
|
+
- `HitDesignCampaign` — like HitTriageCampaign but without filters/ingest; has tile viewer sketch state
|
|
45
|
+
- `HitTriageTemplate` / `HitDesignTemplate` — template definitions with compute config, submit config, campaign fields, stages, layout
|
|
46
|
+
- `TriagePermissions` — `{edit: string[], view: string[]}` storing group IDs
|
|
47
|
+
|
|
48
|
+
### Constants — `src/app/consts.ts`
|
|
49
|
+
|
|
50
|
+
Important constants and their roles:
|
|
51
|
+
- `HitTriageComputeFunctionTag` / `HitDesignerFunctionTag` — tags for discoverable compute functions
|
|
52
|
+
- `HitTriageDataSourceTag` / `HitTriageSubmitTag` — tags for data source and submit functions
|
|
53
|
+
- `ViDColName = 'V-iD'`, `ViDSemType = 'HIT_DESIGN_VID'` — virtual ID column
|
|
54
|
+
- `TileCategoriesColName = 'Stage'` — column used for tile viewer lanes
|
|
55
|
+
- `HitDesignMolColName = 'Molecule'`, `PeptiHitHelmColName = 'Helm'`
|
|
56
|
+
- `i18n` — UI label strings
|
|
57
|
+
- `CampaignGrouping` enum — None, Template, Status, Author, Last Modified User
|
|
58
|
+
|
|
59
|
+
### Views (per app)
|
|
60
|
+
|
|
61
|
+
**Hit Triage views** (`src/app/hit-triage-views/`):
|
|
62
|
+
- `info-view.ts` — Landing page: list campaigns, create new campaign/template
|
|
63
|
+
- `submit-view.ts` — Submit filtered results to a configured function
|
|
64
|
+
|
|
65
|
+
**Hit Design views** (`src/app/hit-design-views/`):
|
|
66
|
+
- `info-view.ts` — Landing page with campaign table, grouping, sorting, create/continue campaigns
|
|
67
|
+
- `submit-view.ts` — Submit results
|
|
68
|
+
- `tiles-view.ts` — Tile/Kanban viewer for stage-based molecule organization
|
|
69
|
+
|
|
70
|
+
**PeptiHit views** (`src/app/pepti-hits-views/`):
|
|
71
|
+
- `info-view.ts` — Extends Hit Design info view for peptide context
|
|
72
|
+
|
|
73
|
+
### Accordions (`src/app/accordeons/`)
|
|
74
|
+
|
|
75
|
+
UI accordions for creating new campaigns and templates:
|
|
76
|
+
|
|
77
|
+
| File | Purpose |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `new-campaign-accordeon.ts` | Hit Triage new campaign form: file/query data source, campaign fields |
|
|
80
|
+
| `new-template-accordeon.ts` | Hit Triage template creator: name, key, compute config, submit function, layout, campaign fields |
|
|
81
|
+
| `new-hit-design-campaign-accordeon.ts` | Hit Design/PeptiHit new campaign: creates initial DataFrame with Molecule, Stage, V-iD columns |
|
|
82
|
+
| `new-hit-design-template-accordeon.ts` | Hit Design/PeptiHit template creator with stages editor |
|
|
83
|
+
| `layout-input.ts` | Reusable layout file input that parses `.layout` files into `DG.ViewLayout` |
|
|
84
|
+
|
|
85
|
+
### Dialogs (`src/app/dialogs/`)
|
|
86
|
+
|
|
87
|
+
| File | Purpose |
|
|
88
|
+
|---|---|
|
|
89
|
+
| `functions-dialog.ts` | Compute configuration dialog: descriptor tree selection + tagged compute functions/scripts/queries with their parameter editors |
|
|
90
|
+
| `save-campaign-dialog.ts` | Simple dialog to name a campaign before saving |
|
|
91
|
+
| `permissions-dialog.ts` | Edit view/edit group permissions for a campaign. Default: All Users |
|
|
92
|
+
|
|
93
|
+
### Utilities
|
|
94
|
+
|
|
95
|
+
**`src/app/utils.ts`** — General helpers:
|
|
96
|
+
- `loadCampaigns()` — loads campaign JSONs from `files/` storage, checks view permissions
|
|
97
|
+
- `modifyUrl()` — updates URL query params without page reload
|
|
98
|
+
- `checkEditPermissions()` / `checkViewPermissions()` — group-based permission checks
|
|
99
|
+
- `addBreadCrumbsToRibbons()` — navigation breadcrumbs in ribbon
|
|
100
|
+
- `joinQueryResults()` — joins query result dataframe back into main dataframe by molecule column
|
|
101
|
+
- Campaign grouping/sorting helpers for info view tables
|
|
102
|
+
|
|
103
|
+
**`src/app/utils/calculate-single-cell.ts`** — Runs compute pipeline (descriptors, functions, scripts, queries) on molecule values. Used for both batch column calculations and single-cell recalculations in Hit Design.
|
|
104
|
+
|
|
105
|
+
**`src/app/utils/molreg.ts`** — V-iD (Virtual ID) molecule registration:
|
|
106
|
+
- `obfuscateSmiles()` / `deobfuscateSmiles()` — XOR + base64 obfuscation using package secret key (`meta.sok`)
|
|
107
|
+
- `registerMol()` — registers one molecule, returns V-iD string (e.g., `V000001`)
|
|
108
|
+
- `registerMolsBatch()` — batch registration in groups of 50
|
|
109
|
+
- `registerAllCampaignMols()` — scans all Hit Design campaigns and registers unregistered molecules
|
|
110
|
+
|
|
111
|
+
**`src/packageSettingsEditor.ts`** — Custom settings editor widget. Settings:
|
|
112
|
+
- Default sharing groups (view/edit) for new campaigns
|
|
113
|
+
- Default campaign storage folder (default: `System.AppData/HitTriage`)
|
|
114
|
+
|
|
115
|
+
**`src/pngRenderers.ts`** — `GasteigerPngRenderer`: custom `DG.GridCellRenderer` for base64 PNG images in grid cells.
|
|
116
|
+
|
|
117
|
+
## Database Schema (`databases/hitdesign/`)
|
|
118
|
+
|
|
119
|
+
PostgreSQL schema `hitdesign` with two migrations:
|
|
120
|
+
|
|
121
|
+
**0000_init.sql** — Lock tables:
|
|
122
|
+
- `campaign_locks(app_name, campaign_id, expires_at, locked_by)` — 30-second TTL campaign locks for concurrent edit protection
|
|
123
|
+
- `update_logs(app_name, campaign_id, updated_at)` — tracks last save time
|
|
124
|
+
|
|
125
|
+
**0001_dict.sql** — V-iD dictionary:
|
|
126
|
+
- `vid_dictionary(id SERIAL, vid VARCHAR(15) GENERATED AS 'V' || LPAD(id, 6, '0'), mh_string TEXT UNIQUE)` — canonical SMILES → auto-generated V-iD
|
|
127
|
+
- `campaign_vids(app_name, vid, campaign_id, created_by)` — tracks which V-iDs appear in which campaigns
|
|
128
|
+
|
|
129
|
+
## SQL Queries (`queries/`)
|
|
130
|
+
|
|
131
|
+
**vid.sql** (connection: `HitTriage:hitdesign`):
|
|
132
|
+
- `addMolecule` — upsert single molecule, return V-iD
|
|
133
|
+
- `addMolecules` — batch upsert via `UNNEST`, preserves input order
|
|
134
|
+
- `getMoleculeByVid` — lookup canonical SMILES by V-iD
|
|
135
|
+
- `getCampaignsByVid` — find all campaigns containing a V-iD
|
|
136
|
+
|
|
137
|
+
**locks.sql** (connection: `HitTriage:hitdesign`):
|
|
138
|
+
- `acquireCampaignLock` — acquire 30-second lock (auto-cleans expired)
|
|
139
|
+
- `releaseCampaignLock` — release lock and log update timestamp
|
|
140
|
+
- `getLastModified` — get last save timestamp for a campaign
|
|
141
|
+
|
|
142
|
+
## Files Storage (`files/`)
|
|
143
|
+
|
|
144
|
+
Campaign and template data stored in `System.AppData/HitTriage/`:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
files/
|
|
148
|
+
Hit Triage/campaigns/{ID}/campaign.json + enriched_table.csv
|
|
149
|
+
Hit Triage/templates/{Name}.json
|
|
150
|
+
Hit Design/campaigns/{ID}/campaign.json + enriched_table.csv
|
|
151
|
+
Hit Design/templates/{Name}.json
|
|
152
|
+
PeptiHit/campaigns/{ID}/campaign.json + enriched_table.csv
|
|
153
|
+
PeptiHit/templates/{Name}.json
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Each campaign has a `campaign.json` (metadata, template snapshot, permissions, layout) and `enriched_table.csv` (the molecule data).
|
|
157
|
+
|
|
158
|
+
## Extension Points
|
|
159
|
+
|
|
160
|
+
The package discovers external functions via tagged roles:
|
|
161
|
+
|
|
162
|
+
| Tag/Role | Purpose | Expected Signature |
|
|
163
|
+
|---|---|---|
|
|
164
|
+
| `HitTriageFunction` | Compute function for property calculation | `(df: DataFrame, molCol: Column, ...args) → void` (mutates df) |
|
|
165
|
+
| `HitDesignerFunction` | Same but specific to Hit Design context | Same as above |
|
|
166
|
+
| `hitTriageDataSource` | Data source for Hit Triage campaigns | `(...args) → DataFrame` (with molecule column) |
|
|
167
|
+
| `hitTriageSubmitFunction` | Submit handler called on campaign submission | `(df: DataFrame, molecules: string) → void` |
|
|
168
|
+
|
|
169
|
+
## Package Settings (in `package.json`)
|
|
170
|
+
|
|
171
|
+
- `properties.view` / `properties.edit` — default user group IDs for new campaign sharing
|
|
172
|
+
- `properties.defaultCampaignFolder` — storage path (default: `System.AppData/HitTriage`)
|
|
173
|
+
- `meta.sok` — secret key for SMILES obfuscation in V-iD dictionary
|
|
174
|
+
|
|
175
|
+
## Key Dependencies
|
|
176
|
+
|
|
177
|
+
- `@datagrok-libraries/compute-utils` — compute pipeline utilities
|
|
178
|
+
- `@datagrok-libraries/utils` — `u2.appHeader`, `ItemsGrid` UI components
|
|
179
|
+
- `uuid` — campaign ID generation
|
|
180
|
+
- `typeahead-standalone` — autocomplete UI
|
|
181
|
+
|
|
182
|
+
## Quick Lookups
|
|
183
|
+
|
|
184
|
+
| Looking for... | Check first |
|
|
185
|
+
|---|---|
|
|
186
|
+
| App registration, tree browsers, demo functions | `src/package.ts` |
|
|
187
|
+
| Campaign types, template types | `src/app/types.ts` |
|
|
188
|
+
| UI labels, column names, tag constants | `src/app/consts.ts` |
|
|
189
|
+
| Hit Triage campaign flow | `src/app/hit-triage-app.ts` |
|
|
190
|
+
| Hit Design campaign flow (+ PeptiHit base) | `src/app/hit-design-app.ts` |
|
|
191
|
+
| Peptide-specific logic | `src/app/pepti-hit-app.ts` |
|
|
192
|
+
| Campaign load/save, permissions, URL management | `src/app/utils.ts` |
|
|
193
|
+
| Molecule registration (V-iD) | `src/app/utils/molreg.ts` |
|
|
194
|
+
| Property calculation pipeline | `src/app/utils/calculate-single-cell.ts` |
|
|
195
|
+
| Compute function picker dialog | `src/app/dialogs/functions-dialog.ts` |
|
|
196
|
+
| Campaign creation UI | `src/app/accordeons/` |
|
|
197
|
+
| Database schema | `databases/hitdesign/` |
|
|
198
|
+
| SQL queries (V-iD, locks) | `queries/` |
|
|
199
|
+
| Package settings editor | `src/packageSettingsEditor.ts` |
|
package/css/hit-triage.css
CHANGED
|
@@ -3,31 +3,6 @@
|
|
|
3
3
|
height: initial !important;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.hit-triage-compute-dialog-pane-header {
|
|
7
|
-
display: flex;
|
|
8
|
-
align-items: center;
|
|
9
|
-
justify-content: end;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.hit-triage-compute-dialog-host>.d4-tab-host.d4-tab-vertical>.d4-tab-header-stripe>.d4-tab-header.hit-triage-compute-dialog-pane-header {
|
|
13
|
-
border: none;
|
|
14
|
-
border-left: 4px solid transparent;
|
|
15
|
-
border-radius: 1px;
|
|
16
|
-
padding: 4px 8px;
|
|
17
|
-
min-height: 28px;
|
|
18
|
-
justify-content: flex-end;
|
|
19
|
-
flex-direction: row-reverse;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.hit-triage-compute-dialog-host>.d4-tab-host.d4-tab-vertical>.d4-tab-header-stripe>.d4-tab-header.hit-triage-compute-dialog-pane-header.selected {
|
|
23
|
-
border-left: 4px solid var(--blue-1);
|
|
24
|
-
background-color: #f2f2f5;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.hit-triage-compute-dialog-host>.d4-tab-host.d4-tab-vertical>.d4-tab-header-stripe>.d4-tab-header.hit-triage-compute-dialog-pane-header>span {
|
|
28
|
-
padding: 0 4px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
6
|
table.hit-triage-table {
|
|
32
7
|
margin: 10px;
|
|
33
8
|
width: calc(100% - 20px);
|
|
@@ -64,22 +39,6 @@ table.hit-triage-table {
|
|
|
64
39
|
width: 100% !important;
|
|
65
40
|
}
|
|
66
41
|
|
|
67
|
-
.hit-triage-compute-dialog-host {
|
|
68
|
-
max-height: 550px;
|
|
69
|
-
max-width: 800px;
|
|
70
|
-
min-width: 550px;
|
|
71
|
-
overflow: clip;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.hit-triage-compute-dialog-descriptors-group {
|
|
75
|
-
margin-left: 16px;
|
|
76
|
-
overflow: hidden;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.oy-scroll {
|
|
80
|
-
overflow-y: scroll;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
42
|
.d4-ribbon-name .ui-breadcrumbs {
|
|
84
43
|
overflow: hidden;
|
|
85
44
|
white-space: nowrap;
|
package/dist/package-test.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var hittriage_test;(()=>{var t={982:function(t,e,n){var o;!function(){var e={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,o,i,s){for(var r,a,c,l,u,y,f,d,p,h,x,g,m;s>=64;){for(r=n[0],a=n[1],c=n[2],l=n[3],u=n[4],y=n[5],f=n[6],d=n[7],h=0;h<16;h++)x=i+4*h,t[h]=(255&o[x])<<24|(255&o[x+1])<<16|(255&o[x+2])<<8|255&o[x+3];for(h=16;h<64;h++)g=((p=t[h-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,m=((p=t[h-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[h]=(g+t[h-7]|0)+(m+t[h-16]|0);for(h=0;h<64;h++)g=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&y^~u&f)|0)+(d+(e[h]+t[h]|0)|0)|0,m=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&a^r&c^a&c)|0,d=f,f=y,y=u,u=l+g|0,l=c,c=a,a=r,r=g+m|0;n[0]+=r,n[1]+=a,n[2]+=c,n[3]+=l,n[4]+=u,n[5]+=y,n[6]+=f,n[7]+=d,i+=64,s-=64}return i}var o=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var o=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[o++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(o=n(this.temp,this.state,t,o,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[o++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,o=this.bufferLength,i=e/536870912|0,s=e<<3,r=e%64<56?64:128;this.buffer[o]=128;for(var a=o+1;a<r-8;a++)this.buffer[a]=0;this.buffer[r-8]=i>>>24&255,this.buffer[r-7]=i>>>16&255,this.buffer[r-6]=i>>>8&255,this.buffer[r-5]=i>>>0&255,this.buffer[r-4]=s>>>24&255,this.buffer[r-3]=s>>>16&255,this.buffer[r-2]=s>>>8&255,this.buffer[r-1]=s>>>0&255,n(this.temp,this.state,this.buffer,0,r),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=o;var i=function(){function t(t){this.inner=new o,this.outer=new o,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new o).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function s(t){var e=(new o).update(t),n=e.digest();return e.clean(),n}function r(t,e){var n=new i(t).update(e),o=n.digest();return n.clean(),o}function a(t,e,n,o){var i=o[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(o),e.finish(t),o[0]++}t.HMAC=i,t.hash=s,t.default=s,t.hmac=r;var c=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,o){void 0===e&&(e=c),void 0===o&&(o=32);for(var s=new Uint8Array([1]),l=r(e,t),u=new i(l),y=new Uint8Array(u.digestLength),f=y.length,d=new Uint8Array(o),p=0;p<o;p++)f===y.length&&(a(y,u,n,s),f=0),d[p]=y[f++];return u.clean(),y.fill(0),s.fill(0),d},t.pbkdf2=function(t,e,n,o){for(var s=new i(t),r=s.digestLength,a=new Uint8Array(4),c=new Uint8Array(r),l=new Uint8Array(r),u=new Uint8Array(o),y=0;y*r<o;y++){var f=y+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,s.reset(),s.update(e),s.update(a),s.finish(l);for(var d=0;d<r;d++)c[d]=l[d];for(d=2;d<=n;d++){s.reset(),s.update(l).finish(l);for(var p=0;p<r;p++)c[p]^=l[p]}for(d=0;d<r&&y*r+d<o;d++)u[y*r+d]=c[d]}for(y=0;y<r;y++)c[y]=l[y]=0;for(y=0;y<4;y++)a[y]=0;return s.clean(),u}}(e);var i=e.default;for(var s in e)i[s]=e[s];"object"==typeof t.exports?t.exports=i:void 0===(o=function(){return i}.call(e,n,e,t))||(t.exports=o)}()}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};(()=>{"use strict";n.r(o),n.d(o,{_package:()=>S,initAutoTests:()=>R,test:()=>N,tests:()=>y});const t=DG;n(982);const e=DG.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,');e.columns.add(DG.Column.fromList(DG.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var i=function(t,e,n,o){return new(n||(n=Promise))(function(i,s){function r(t){try{c(o.next(t))}catch(t){s(t)}}function a(t){try{c(o.throw(t))}catch(t){s(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(r,a)}c((o=o.apply(t,e||[])).next())})};const s=3e4,r=108e5,a=console.log.bind(console),c=console.info.bind(console),l=console.warn.bind(console),u=console.error.bind(console),y={},f="Auto Tests",d="Demo",p="Detectors",h="Core",x={};var g;!function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(g||(g={}));class m{constructor(t,e,n){this.catchUnhandled=!0,this.report=!1,this.returnOnFail=!1,void 0!==t&&(this.catchUnhandled=t),void 0!==e&&(this.report=e),void 0!==n&&(this.returnOnFail=n)}}class v{constructor(t,e,n,o){var r;this.category=t,this.name=e,null!=o||(o={}),null!==(r=o.timeout)&&void 0!==r||(o.timeout=s),this.options=o,this.test=()=>i(this,void 0,void 0,function*(){return new Promise((t,e)=>i(this,void 0,void 0,function*(){var o;let i="";try{DG.Test.isInDebug;let t=yield n();try{i=null!==(o=null==t?void 0:t.toString())&&void 0!==o?o:""}catch(t){i="Can't convert test's result to string",console.error(`Can't convert test's result to string in the ${this.category}:${this.name} test`)}}catch(t){e(t)}t(i)}))})}}function C(t,e=!0,n){if(n=n?`${n}, `:"",t!==e)throw new Error(`${n}Expected "${e}", got "${t}"`)}function b(t,e){return t.replace(new RegExp(e.name,"gi"),e.nqName)}function w(t,n){var o,a,c,l,u,g,m,w,k,D;return i(this,void 0,void 0,function*(){const O=t.id;if(x[O])return;const L=n?n.tests:y;if("DevTools"===t.name||n&&"DevTools"===n._package.name)for(const t of window.dartTests){const e=t.name.split(/\s*\|\s*!/g);let n=null!==(o=e.pop())&&void 0!==o?o:t.name,i=e.length?h+": "+e.join(": "):h,r=n.split(" | ");n=r[r.length-1],r.unshift(i),r.pop(),i=r.join(": "),void 0===L[i]&&(L[i]={tests:[],clear:!0}),L[i].tests.push(new v(i,n,t.test,{isAggregated:!1,timeout:null!==(c=null===(a=t.options)||void 0===a?void 0:a.timeout)&&void 0!==c?c:s,skipReason:null===(l=t.options)||void 0===l?void 0:l.skipReason,owner:null===(u=t.options)||void 0===u?void 0:u.owner,benchmark:null!==(m=null===(g=t.options)||void 0===g?void 0:g.benchmark)&&void 0!==m&&m}))}const A=[],S=[],N=[],R=yield grok.dapi.functions.filter(`package.id = "${O}"`).list(),E=new RegExp(/skip:\s*([^,\s]+)|wait:\s*(\d+)|cat:\s*([^,\s]+)|timeout:\s*(\d+)/g);for(const n of R){const o=n.options.test,a=n.options.demoPath;if(o&&Array.isArray(o)&&o.length)for(let t=0;t<o.length;t++){const e=o[t].matchAll(E),a={};Array.from(e).forEach(t=>{t[0].startsWith("skip")?a.skip=t[1]:t[0].startsWith("wait")?a.wait=parseInt(t[2]):t[0].startsWith("cat")?a.cat=t[3]:t[0].startsWith("timeout")&&(a.timeout=parseInt(t[4]))});const c=new v(null!==(w=a.cat)&&void 0!==w?w:f,1===o.length?n.name:`${n.name} ${t+1}`,()=>i(this,void 0,void 0,function*(){const e=yield grok.functions.eval(b(o[t],n));if(a.wait&&(yield T(a.wait)),"boolean"==typeof e&&!e)throw`Failed: ${o[t]}, expected true, got ${e}`}),{skipReason:a.skip,timeout:DG.Test.isInBenchmark?null!==(k=a.benchmarkTimeout)&&void 0!==k?k:r:null!==(D=a.timeout)&&void 0!==D?D:s});if(a.cat){const t=a.cat;void 0===L[t]&&(L[t]={tests:[],clear:!0}),L[t].tests||(L[t].tests=[]),L[t].tests.push(c)}else A.push(c)}if(a){const t=n.options.demoWait?parseInt(n.options.demoWait):void 0,e=new v(d,n.friendlyName,()=>i(this,void 0,void 0,function*(){yield T(300),grok.shell.clearLastError(),yield n.apply(),yield T(t||2e3);const e=yield grok.shell.lastError;if(e)throw new Error(e)}),{skipReason:n.options.demoSkip});S.push(e)}if(n.hasTag("semTypeDetector")){let o=e;n.options.testData&&(o=yield grok.data.files.openTable(`System:AppData/${t.nqName}/${n.options.testData}`));const s=new v(p,n.friendlyName,()=>i(this,void 0,void 0,function*(){const e=[];console.log(`System:AppData/${t.nqName}/${n.options.testData}`);for(const t of o.clone().columns){const o=yield n.apply([t]);e.push(o||t.semType)}const i=e.filter(t=>t);C(i.length,1),n.options.testDataColumnName&&C(i[0],n.options.testDataColumnName)}),{skipReason:n.options.skipTest});N.push(s)}}x[O]=!0,A.length>0&&(L[f]={tests:A,clear:!0}),S.length>0&&(L[d]={tests:S,clear:!0}),N.length>0&&(L[p]={tests:N,clear:!1})})}function k(t){return i(this,void 0,void 0,function*(){return`${t.toString()}\n${t.stack?yield DG.Logger.translateStackTrace(t.stack):""}`})}function D(t,e,n,o,r,c){var l,y,f,d,p,h,x,g,m,v,C,b,w,D;return i(this,void 0,void 0,function*(){let i;n.length=0;const O=null!=e&&t.name.toLowerCase()!==e.toLowerCase();let T=(null===(l=t.options)||void 0===l?void 0:l.skipReason)||O,A=O?"skipped":null===(y=t.options)||void 0===y?void 0:y.skipReason;if(DG.Test.isInBenchmark&&!(null===(f=t.options)||void 0===f?void 0:f.benchmark))return void a(`Package testing: Skipped {{${t.category}}} {{${t.name}}} doesnt available in benchmark mode`);T&&!DG.Test.isInBenchmark&&a(`Package testing: Skipped {{${t.category}}} {{${t.name}}}`),T||a(`Package testing: Started {{${t.category}}} {{${t.name}}}`);const S=Date.now(),N=new Date(S).toISOString();try{if(T)i={name:t.name,owner:null!==(p=null===(d=t.options)||void 0===d?void 0:d.owner)&&void 0!==p?p:"",category:t.category,logs:"",date:N,success:!0,result:A,ms:0,skipped:!0,package:null!=r?r:"",flaking:DG.Test.isReproducing};else{let e=null!=o?o:s;DG.Test.isProfiling&&console.profile(`${t.category}: ${t.name}`),i={name:t.name,owner:null!==(x=null===(h=t.options)||void 0===h?void 0:h.owner)&&void 0!==x?x:"",category:t.category,logs:"",date:N,success:!0,result:null!==(g=(yield L(t.test,e)).toString())&&void 0!==g?g:"OK",ms:0,skipped:!1,package:null!=r?r:"",flaking:DG.Test.isReproducing},DG.Test.isProfiling&&(console.profileEnd(`${t.category}: ${t.name}`),grok.shell.info(`Profiling of ${t.category}: ${t.name} finished \n Please ensure that you have opened DevTools (F12) / Performance panel before test starts.`))}}catch(e){u(e),i={name:t.name,owner:null!==(v=null===(m=t.options)||void 0===m?void 0:m.owner)&&void 0!==v?v:"",category:t.category,logs:"",date:N,success:!1,result:yield k(e),ms:0,skipped:!1,package:null!=r?r:"",flaking:!1}}if((null===(C=t.options)||void 0===C?void 0:C.isAggregated)&&i.result.constructor===DG.DataFrame){const t=i.result.col("success");if(t&&(i.success=t.stats.sum===t.length),!c){const t=i.result;t.columns.remove("stack"),t.rows.removeWhere(t=>t.get("success")),i.result=t}i.result=i.result.toCsv()}if(i.logs=n.join("\n"),i.ms=Date.now()-S,T||a(`Package testing: Finished {{${t.category}}} {{${t.name}}} with {{${i.success?"success":"error"}}} for ${i.ms} ms`),i.success||a(`Package testing: Result for {{${t.category}}} {{${t.name}}}: ${i.result}`),i.category=t.category,i.name=t.name,i.owner=null!==(w=null===(b=t.options)||void 0===b?void 0:b.owner)&&void 0!==w?w:"",!O){let e={success:i.success,result:i.result,ms:i.ms,date:i.date,skipped:i.skipped,category:t.category,name:t.name,logs:i.logs,owner:i.owner,flaking:DG.Test.isReproducing&&i.success,package:i.package};if(i.result.constructor==Object){const t=Object.keys(i.result).reduce((t,e)=>Object.assign(Object.assign({},t),{["result."+e]:i.result[e]}),{});e=Object.assign(Object.assign({},e),t)}e.result instanceof DG.DataFrame&&(e.result=JSON.stringify(null===(D=e.result)||void 0===D?void 0:D.toJson())||""),yield grok.shell.reportTest("package",e)}return i})}function O(t){const e=t.slice();return e.sort(()=>Math.random()-.5),e}function T(t){return i(this,void 0,void 0,function*(){yield new Promise(e=>setTimeout(e,t))})}function L(t,e,n="EXECUTION TIMEOUT"){return i(this,void 0,void 0,function*(){let o=null;const i=new Promise((t,i)=>{o=setTimeout(()=>{i(n)},e)});try{return yield Promise.race([t(),i])}finally{o&&clearTimeout(o)}})}DG.DataFrame.fromColumns([DG.Column.fromStrings("col",["val1","val2","val3"])]);var A=function(t,e,n,o){return new(n||(n=Promise))(function(i,s){function r(t){try{c(o.next(t))}catch(t){s(t)}}function a(t){try{c(o.throw(t))}catch(t){s(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(r,a)}c((o=o.apply(t,e||[])).next())})};const S=new t.Package;function N(e,n,o){return A(this,void 0,void 0,function*(){const f=yield function(t){var e,n,o;return i(this,void 0,void 0,function*(){const f=(null==t?void 0:t.nodeOptions)?t.nodeOptions.package:grok.functions.getCurrentCall().func.package;if(!f)throw new Error("Can't run tests outside of the package");const d=null===(e=f.packageOwner)||void 0===e?void 0:e.match(/<([^>]*)>/),p=d?d[1]:"";null!=f&&(yield w(f));const h=[];console.log("Running tests..."),console.log(t),null!=t||(t={}),null!==(n=(o=t).testContext)&&void 0!==n||(o.testContext=new m),grok.shell.clearLastError();const x=function(){const t=[];return console.log=(...e)=>{t.push(...e),a(...e)},console.info=(...e)=>{t.push(...e),c(...e)},console.warn=(...e)=>{t.push(...e),l(...e)},console.error=(...e)=>{t.push(...e),u(...e)},t}();yield function(t,e){var n,o,s,r,y,d;return i(this,void 0,void 0,function*(){try{let c=null!=(null==e?void 0:e.skipToCategory),l=!1;for(const[u,x]of Object.entries(t)){if(null===(n=e.exclude)||void 0===n?void 0:n.some(t=>u.startsWith(t)))continue;if(null!=(null==e?void 0:e.category)&&!u.toLowerCase().startsWith(null==e?void 0:e.category.toLowerCase().trim()))continue;if(c)if(l)c=!1;else{if(null==(null==e?void 0:e.skipToCategory)||u.toLowerCase().trim()!==(null==e?void 0:e.skipToCategory.toLowerCase().trim()))continue;l=!0}const t=null===(o=x.tests)||void 0===o?void 0:o.every(t=>{var n;return(null===(n=t.options)||void 0===n?void 0:n.skipReason)||null!=(null==e?void 0:e.test)&&e.test.toLowerCase()!==t.name.toLowerCase()});if(!t){const t=(null!==(s=x.tests)&&void 0!==s?s:[]).filter(t=>{var n;return(null===(n=t.options)||void 0===n?void 0:n.skipReason)||null!=(null==e?void 0:e.test)&&e.test.toLowerCase()!==t.name.toLowerCase()}).length;a(`Package testing: Started {{${u}}}${t>0?` skipped {{${t}}}`:""}`),x.beforeStatus=yield g(x.before,u)}let m,C=null!==(r=x.tests)&&void 0!==r?r:[];e.stressTest&&(C=C.filter(t=>{var e;return null===(e=t.options)||void 0===e?void 0:e.stressTest}),C=O(C)),(null!==(d=null===(y=e.tags)||void 0===y?void 0:y.length)&&void 0!==d?d:0)>0&&(C=C.filter(t=>{var n,o;return null===(o=null===(n=t.options)||void 0===n?void 0:n.tags)||void 0===o?void 0:o.some(t=>{var n;return(null!==(n=null==e?void 0:e.tags)&&void 0!==n?n:[]).includes(t)})})),x.beforeStatus?(m=Array.from(C.map(t=>({date:(new Date).toISOString(),category:u,name:t.name,success:!1,result:"before() failed",ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing}))),m.forEach(t=>i(this,void 0,void 0,function*(){return yield grok.shell.reportTest("package",t)}))):m=yield v(x,e,c);const b=m.filter(t=>"skipped"!=t.result);if(t||(x.afterStatus=yield g(x.after,u)),x.afterStatus&&(a(`Package testing: Category after() {{${u}}} failed`),a(`Package testing: Result for {{${u}}} after: ${x.afterStatus}`),b.push({date:(new Date).toISOString(),category:u,name:"after",success:!1,result:x.afterStatus,ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing})),x.beforeStatus&&(a(`Package testing: Category before() {{${u}}} failed`),a(`Package testing: Result for {{${u}}} before: ${x.beforeStatus}`),b.push({date:(new Date).toISOString(),category:u,name:"before",success:!1,result:x.beforeStatus,ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing})),h.push(...b),e.returnOnFail&&b.some(t=>!t.success&&!t.skipped&&t.name!==e.skipToTest))break}}finally{console.log=a,console.info=c,console.warn=l,console.error=u}if(e.testContext.catchUnhandled&&!DG.Test.isInBenchmark){yield T(1e3);const t=yield grok.shell.lastError;if(null!=t){const e={logs:"",date:(new Date).toISOString(),category:"Unhandled exceptions",name:"Exception",result:null!=t?t:"",success:!t,ms:0,skipped:!1,owner:null!=p?p:"",package:f.name,widgetsDifference:0};a(`Package testing: Unhandled Exception: ${t}`),h.push(Object.assign(Object.assign({},e),{flaking:DG.Test.isReproducing&&!t})),e.package=f.name,yield grok.shell.reportTest("package",e)}}})}(y,t);for(let t of h)t.result=t.result.toString().replace(/"/g,"'"),null!=t.logs&&(t.logs=t.logs.toString().replace(/"/g,"'"));return h;function g(t,e){return i(this,void 0,void 0,function*(){let n;try{void 0!==t&&(yield L(()=>i(this,void 0,void 0,function*(){yield t()}),1e5,`before ${e}: timeout error`))}catch(t){n=yield k(t)}return n})}function v(t,e,n){var o,a,c,l,u,y,d,h,g,m,v,b,w,k,O,T,L,A;return i(this,void 0,void 0,function*(){let i=null!==(o=t.tests)&&void 0!==o?o:[];const S=[],N=C();if(t.clear){let o=n&&null!=e.skipToTest;for(let n=0;n<i.length;n++){i[n].options&&void 0===(null===(a=i[n].options)||void 0===a?void 0:a.benchmark)&&(i[n].options||(i[n].options={}),i[n].options.benchmark=null!==(c=t.benchmarks)&&void 0!==c&&c);let b=i[n];if(e.test&&e.test.toLowerCase()!==b.name.toLowerCase())continue;if(o){if(null==(null==e?void 0:e.skipToTest)||b.name.toLowerCase().trim()!==(null==e?void 0:e.skipToTest.toLowerCase().trim()))continue;o=!1}(null==b?void 0:b.options)&&(b.options.owner=null!==(d=null!==(y=null!==(u=null===(l=i[n].options)||void 0===l?void 0:l.owner)&&void 0!==u?u:null==t?void 0:t.owner)&&void 0!==y?y:p)&&void 0!==d?d:"");let w=yield D(b,null==e?void 0:e.test,x,DG.Test.isInBenchmark?null!==(g=null===(h=i[n].options)||void 0===h?void 0:h.benchmarkTimeout)&&void 0!==g?g:r:null!==(v=null===(m=i[n].options)||void 0===m?void 0:m.timeout)&&void 0!==v?v:s,f.name,e.verbose);if(w&&(S.push(Object.assign(Object.assign({},w),{widgetsDifference:C()-N})),e.returnOnFail&&e.skipToTest!==b.name&&!w.success&&!w.skipped))return S;e.nodeOptions||(grok.shell.closeAll(),DG.Balloon.closeAll())}}else{let o=n&&null!=e.skipToTest;for(let n=0;n<i.length;n++){let s=i[n];if(e.test&&e.test.toLowerCase()!==s.name.toLowerCase())continue;if(o){null!=(null==e?void 0:e.skipToTest)&&s.name.toLowerCase().trim()===(null==e?void 0:e.skipToTest.toLowerCase().trim())&&(o=!1);continue}(null==s?void 0:s.options)&&(s.options.owner=null!==(O=null!==(k=null!==(w=null===(b=i[n].options)||void 0===b?void 0:b.owner)&&void 0!==w?w:null==t?void 0:t.owner)&&void 0!==k?k:p)&&void 0!==O?O:"");let a=yield D(s,null==e?void 0:e.test,x,DG.Test.isInBenchmark?null!==(L=null===(T=i[n].options)||void 0===T?void 0:T.benchmarkTimeout)&&void 0!==L?L:r:null===(A=i[n].options)||void 0===A?void 0:A.timeout,f.name,e.verbose);if(a&&(S.push(Object.assign(Object.assign({},a),{widgetsDifference:C()-N})),e.returnOnFail&&e.skipToTest!==s.name&&!a.success&&!a.skipped))return S}}return S})}function C(){var t;if("undefined"!=typeof process)return 0;let e=-1;try{e=DG.Widget.getAll().length}catch(e){console.warn(null!==(t=e.message)&&void 0!==t?t:e)}return e}})}({category:e,test:n,testContext:o});return t.DataFrame.fromObjects(f)})}function R(){return A(this,void 0,void 0,function*(){yield w(S,S.getModule("package-test.js"))})}})(),hittriage_test=o})();
|
|
1
|
+
var hittriage_test;(()=>{var t={982(t,e,n){var o;!function(){var e={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,o,s,i){for(var r,a,c,l,u,y,f,d,p,h,x,g,m;i>=64;){for(r=n[0],a=n[1],c=n[2],l=n[3],u=n[4],y=n[5],f=n[6],d=n[7],h=0;h<16;h++)x=s+4*h,t[h]=(255&o[x])<<24|(255&o[x+1])<<16|(255&o[x+2])<<8|255&o[x+3];for(h=16;h<64;h++)g=((p=t[h-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,m=((p=t[h-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[h]=(g+t[h-7]|0)+(m+t[h-16]|0);for(h=0;h<64;h++)g=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&y^~u&f)|0)+(d+(e[h]+t[h]|0)|0)|0,m=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&a^r&c^a&c)|0,d=f,f=y,y=u,u=l+g|0,l=c,c=a,a=r,r=g+m|0;n[0]+=r,n[1]+=a,n[2]+=c,n[3]+=l,n[4]+=u,n[5]+=y,n[6]+=f,n[7]+=d,s+=64,i-=64}return s}var o=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var o=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[o++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(o=n(this.temp,this.state,t,o,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[o++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,o=this.bufferLength,s=e/536870912|0,i=e<<3,r=e%64<56?64:128;this.buffer[o]=128;for(var a=o+1;a<r-8;a++)this.buffer[a]=0;this.buffer[r-8]=s>>>24&255,this.buffer[r-7]=s>>>16&255,this.buffer[r-6]=s>>>8&255,this.buffer[r-5]=s>>>0&255,this.buffer[r-4]=i>>>24&255,this.buffer[r-3]=i>>>16&255,this.buffer[r-2]=i>>>8&255,this.buffer[r-1]=i>>>0&255,n(this.temp,this.state,this.buffer,0,r),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=o;var s=function(){function t(t){this.inner=new o,this.outer=new o,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new o).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function i(t){var e=(new o).update(t),n=e.digest();return e.clean(),n}function r(t,e){var n=new s(t).update(e),o=n.digest();return n.clean(),o}function a(t,e,n,o){var s=o[0];if(0===s)throw new Error("hkdf: cannot expand more");e.reset(),s>1&&e.update(t),n&&e.update(n),e.update(o),e.finish(t),o[0]++}t.HMAC=s,t.hash=i,t.default=i,t.hmac=r;var c=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,o){void 0===e&&(e=c),void 0===o&&(o=32);for(var i=new Uint8Array([1]),l=r(e,t),u=new s(l),y=new Uint8Array(u.digestLength),f=y.length,d=new Uint8Array(o),p=0;p<o;p++)f===y.length&&(a(y,u,n,i),f=0),d[p]=y[f++];return u.clean(),y.fill(0),i.fill(0),d},t.pbkdf2=function(t,e,n,o){for(var i=new s(t),r=i.digestLength,a=new Uint8Array(4),c=new Uint8Array(r),l=new Uint8Array(r),u=new Uint8Array(o),y=0;y*r<o;y++){var f=y+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,i.reset(),i.update(e),i.update(a),i.finish(l);for(var d=0;d<r;d++)c[d]=l[d];for(d=2;d<=n;d++){i.reset(),i.update(l).finish(l);for(var p=0;p<r;p++)c[p]^=l[p]}for(d=0;d<r&&y*r+d<o;d++)u[y*r+d]=c[d]}for(y=0;y<r;y++)c[y]=l[y]=0;for(y=0;y<4;y++)a[y]=0;return i.clean(),u}}(e);var s=e.default;for(var i in e)s[i]=e[i];"object"==typeof t.exports?t.exports=s:void 0===(o=function(){return s}.call(e,n,e,t))||(t.exports=o)}()}},e={};function n(o){var s=e[o];if(void 0!==s)return s.exports;var i=e[o]={exports:{}};return t[o].call(i.exports,i,i.exports,n),i.exports}n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};(()=>{"use strict";n.r(o),n.d(o,{_package:()=>S,initAutoTests:()=>R,test:()=>N,tests:()=>y});const t=DG;n(982);const e=DG.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,');e.columns.add(DG.Column.fromList(DG.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var s=function(t,e,n,o){return new(n||(n=Promise))(function(s,i){function r(t){try{c(o.next(t))}catch(t){i(t)}}function a(t){try{c(o.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?s(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(r,a)}c((o=o.apply(t,e||[])).next())})};const i=3e4,r=108e5,a=console.log.bind(console),c=console.info.bind(console),l=console.warn.bind(console),u=console.error.bind(console),y={},f="Auto Tests",d="Demo",p="Detectors",h="Core",x={};var g;!function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(g||(g={}));class m{constructor(t,e,n){this.catchUnhandled=!0,this.report=!1,this.returnOnFail=!1,this.closeAll=!0,void 0!==t&&(this.catchUnhandled=t),void 0!==e&&(this.report=e),void 0!==n&&(this.returnOnFail=n)}}class v{constructor(t,e,n,o){var r;this.category=t,this.name=e,null!=o||(o={}),null!==(r=o.timeout)&&void 0!==r||(o.timeout=i),this.options=o,this.test=()=>s(this,void 0,void 0,function*(){return new Promise((t,e)=>s(this,void 0,void 0,function*(){var o;let s="";try{DG.Test.isInDebug;let t=yield n();try{s=null!==(o=null==t?void 0:t.toString())&&void 0!==o?o:""}catch(t){s="Can't convert test's result to string",console.error(`Can't convert test's result to string in the ${this.category}:${this.name} test`)}}catch(t){e(t)}t(s)}))})}}function C(t,e=!0,n){if(n=n?`${n}, `:"",t!==e)throw new Error(`${n}Expected "${e}", got "${t}"`)}function b(t,e){return t.replace(new RegExp(e.name,"gi"),e.nqName)}function w(t,n){var o,a,c,l,u,g,m,w,k,D;return s(this,void 0,void 0,function*(){const O=t.id;if(x[O])return;const L=n?n.tests:y;if("DevTools"===t.name||n&&"DevTools"===n._package.name)for(const t of window.dartTests){const e=t.name.split(/\s*\|\s*!/g);let n=null!==(o=e.pop())&&void 0!==o?o:t.name,s=e.length?h+": "+e.join(": "):h,r=n.split(" | ");n=r[r.length-1],r.unshift(s),r.pop(),s=r.join(": "),void 0===L[s]&&(L[s]={tests:[],clear:!0}),L[s].tests.push(new v(s,n,t.test,{isAggregated:!1,timeout:null!==(c=null===(a=t.options)||void 0===a?void 0:a.timeout)&&void 0!==c?c:i,skipReason:null===(l=t.options)||void 0===l?void 0:l.skipReason,owner:null===(u=t.options)||void 0===u?void 0:u.owner,benchmark:null!==(m=null===(g=t.options)||void 0===g?void 0:g.benchmark)&&void 0!==m&&m}))}const A=[],S=[],N=[],R=yield grok.dapi.functions.filter(`package.id = "${O}"`).list(),E=new RegExp(/skip:\s*([^,\s]+)|wait:\s*(\d+)|cat:\s*([^,\s]+)|timeout:\s*(\d+)/g);for(const n of R){const o=n.options.test,a=n.options.demoPath;if(o&&Array.isArray(o)&&o.length)for(let t=0;t<o.length;t++){const e=o[t].matchAll(E),a={};Array.from(e).forEach(t=>{t[0].startsWith("skip")?a.skip=t[1]:t[0].startsWith("wait")?a.wait=parseInt(t[2]):t[0].startsWith("cat")?a.cat=t[3]:t[0].startsWith("timeout")&&(a.timeout=parseInt(t[4]))});const c=new v(null!==(w=a.cat)&&void 0!==w?w:f,1===o.length?n.name:`${n.name} ${t+1}`,()=>s(this,void 0,void 0,function*(){const e=yield grok.functions.eval(b(o[t],n));if(a.wait&&(yield T(a.wait)),"boolean"==typeof e&&!e)throw`Failed: ${o[t]}, expected true, got ${e}`}),{skipReason:a.skip,timeout:DG.Test.isInBenchmark?null!==(k=a.benchmarkTimeout)&&void 0!==k?k:r:null!==(D=a.timeout)&&void 0!==D?D:i});if(a.cat){const t=a.cat;void 0===L[t]&&(L[t]={tests:[],clear:!0}),L[t].tests||(L[t].tests=[]),L[t].tests.push(c)}else A.push(c)}if(a){const t=n.options.demoWait?parseInt(n.options.demoWait):void 0,e=new v(d,n.friendlyName,()=>s(this,void 0,void 0,function*(){yield T(300),grok.shell.clearLastError(),yield n.apply(),yield T(t||2e3);const e=yield grok.shell.lastError;if(e)throw new Error(e)}),{skipReason:n.options.demoSkip});S.push(e)}if(n.hasTag("semTypeDetector")){let o=e;n.options.testData&&(o=yield grok.data.files.openTable(`System:AppData/${t.nqName}/${n.options.testData}`));const i=new v(p,n.friendlyName,()=>s(this,void 0,void 0,function*(){const e=[];console.log(`System:AppData/${t.nqName}/${n.options.testData}`);for(const t of o.clone().columns){const o=yield n.apply([t]);e.push(o||t.semType)}const s=e.filter(t=>t);C(s.length,1),n.options.testDataColumnName&&C(s[0],n.options.testDataColumnName)}),{skipReason:n.options.skipTest});N.push(i)}}x[O]=!0,A.length>0&&(L[f]={tests:A,clear:!0}),S.length>0&&(L[d]={tests:S,clear:!0}),N.length>0&&(L[p]={tests:N,clear:!1})})}function k(t){return s(this,void 0,void 0,function*(){return`${t.toString()}\n${t.stack?yield DG.Logger.translateStackTrace(t.stack):""}`})}function D(t,e,n,o,r,c){var l,y,f,d,p,h,x,g,m,v,C,b,w,D;return s(this,void 0,void 0,function*(){let s;n.length=0;const O=null!=e&&t.name.toLowerCase()!==e.toLowerCase();let T=(null===(l=t.options)||void 0===l?void 0:l.skipReason)||O,A=O?"skipped":null===(y=t.options)||void 0===y?void 0:y.skipReason;if(DG.Test.isInBenchmark&&!(null===(f=t.options)||void 0===f?void 0:f.benchmark))return void a(`Package testing: Skipped {{${t.category}}} {{${t.name}}} doesnt available in benchmark mode`);T&&!DG.Test.isInBenchmark&&a(`Package testing: Skipped {{${t.category}}} {{${t.name}}}`),T||a(`Package testing: Started {{${t.category}}} {{${t.name}}}`);const S=Date.now(),N=new Date(S).toISOString();try{if(T)s={name:t.name,owner:null!==(p=null===(d=t.options)||void 0===d?void 0:d.owner)&&void 0!==p?p:"",category:t.category,logs:"",date:N,success:!0,result:A,ms:0,skipped:!0,package:null!=r?r:"",flaking:DG.Test.isReproducing};else{let e=null!=o?o:i;DG.Test.isProfiling&&console.profile(`${t.category}: ${t.name}`),s={name:t.name,owner:null!==(x=null===(h=t.options)||void 0===h?void 0:h.owner)&&void 0!==x?x:"",category:t.category,logs:"",date:N,success:!0,result:null!==(g=(yield L(t.test,e)).toString())&&void 0!==g?g:"OK",ms:0,skipped:!1,package:null!=r?r:"",flaking:DG.Test.isReproducing},DG.Test.isProfiling&&(console.profileEnd(`${t.category}: ${t.name}`),grok.shell.info(`Profiling of ${t.category}: ${t.name} finished \n Please ensure that you have opened DevTools (F12) / Performance panel before test starts.`))}}catch(e){u(e),s={name:t.name,owner:null!==(v=null===(m=t.options)||void 0===m?void 0:m.owner)&&void 0!==v?v:"",category:t.category,logs:"",date:N,success:!1,result:yield k(e),ms:0,skipped:!1,package:null!=r?r:"",flaking:!1}}if((null===(C=t.options)||void 0===C?void 0:C.isAggregated)&&s.result.constructor===DG.DataFrame){const t=s.result.col("success");if(t&&(s.success=t.stats.sum===t.length),!c){const t=s.result;t.columns.remove("stack"),t.rows.removeWhere(t=>t.get("success")),s.result=t}s.result=s.result.toCsv()}if(s.logs=n.join("\n"),s.ms=Date.now()-S,T||a(`Package testing: Finished {{${t.category}}} {{${t.name}}} with {{${s.success?"success":"error"}}} for ${s.ms} ms`),s.success||a(`Package testing: Result for {{${t.category}}} {{${t.name}}}: ${s.result}`),s.category=t.category,s.name=t.name,s.owner=null!==(w=null===(b=t.options)||void 0===b?void 0:b.owner)&&void 0!==w?w:"",!O){let e={success:s.success,result:s.result,ms:s.ms,date:s.date,skipped:s.skipped,category:t.category,name:t.name,logs:s.logs,owner:s.owner,flaking:DG.Test.isReproducing&&s.success,package:s.package};if(s.result.constructor==Object){const t=Object.keys(s.result).reduce((t,e)=>Object.assign(Object.assign({},t),{["result."+e]:s.result[e]}),{});e=Object.assign(Object.assign({},e),t)}e.result instanceof DG.DataFrame&&(e.result=JSON.stringify(null===(D=e.result)||void 0===D?void 0:D.toJson())||""),yield grok.shell.reportTest("package",e)}return s})}function O(t){const e=t.slice();return e.sort(()=>Math.random()-.5),e}function T(t){return s(this,void 0,void 0,function*(){yield new Promise(e=>setTimeout(e,t))})}function L(t,e,n="EXECUTION TIMEOUT"){return s(this,void 0,void 0,function*(){let o=null;const s=new Promise((t,s)=>{o=setTimeout(()=>{s(n)},e)});try{return yield Promise.race([t(),s])}finally{o&&clearTimeout(o)}})}DG.DataFrame.fromColumns([DG.Column.fromStrings("col",["val1","val2","val3"])]);var A=function(t,e,n,o){return new(n||(n=Promise))(function(s,i){function r(t){try{c(o.next(t))}catch(t){i(t)}}function a(t){try{c(o.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?s(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(r,a)}c((o=o.apply(t,e||[])).next())})};const S=new t.Package;function N(e,n,o){return A(this,void 0,void 0,function*(){const f=yield function(t){var e,n,o;return s(this,void 0,void 0,function*(){const f=(null==t?void 0:t.nodeOptions)?t.nodeOptions.package:grok.functions.getCurrentCall().func.package;if(!f)throw new Error("Can't run tests outside of the package");const d=null===(e=f.packageOwner)||void 0===e?void 0:e.match(/<([^>]*)>/),p=d?d[1]:"";null!=f&&(yield w(f));const h=[];console.log("Running tests..."),console.log(t),null!=t||(t={}),null!==(n=(o=t).testContext)&&void 0!==n||(o.testContext=new m),grok.shell.clearLastError();const x=function(){const t=[];return console.log=(...e)=>{t.push(...e),a(...e)},console.info=(...e)=>{t.push(...e),c(...e)},console.warn=(...e)=>{t.push(...e),l(...e)},console.error=(...e)=>{t.push(...e),u(...e)},t}();yield function(t,e){var n,o,i,r,y,d;return s(this,void 0,void 0,function*(){try{let c=null!=(null==e?void 0:e.skipToCategory),l=!1;for(const[u,x]of Object.entries(t)){if(null===(n=e.exclude)||void 0===n?void 0:n.some(t=>u.startsWith(t)))continue;if(null!=(null==e?void 0:e.category)&&!u.toLowerCase().startsWith(null==e?void 0:e.category.toLowerCase().trim()))continue;if(c)if(l)c=!1;else{if(null==(null==e?void 0:e.skipToCategory)||u.toLowerCase().trim()!==(null==e?void 0:e.skipToCategory.toLowerCase().trim()))continue;l=!0}const t=null===(o=x.tests)||void 0===o?void 0:o.every(t=>{var n;return(null===(n=t.options)||void 0===n?void 0:n.skipReason)||null!=(null==e?void 0:e.test)&&e.test.toLowerCase()!==t.name.toLowerCase()});if(!t){const t=(null!==(i=x.tests)&&void 0!==i?i:[]).filter(t=>{var n;return(null===(n=t.options)||void 0===n?void 0:n.skipReason)||null!=(null==e?void 0:e.test)&&e.test.toLowerCase()!==t.name.toLowerCase()}).length;a(`Package testing: Started {{${u}}}${t>0?` skipped {{${t}}}`:""}`),x.beforeStatus=yield g(x.before,u)}let m,C=null!==(r=x.tests)&&void 0!==r?r:[];e.stressTest&&(C=C.filter(t=>{var e;return null===(e=t.options)||void 0===e?void 0:e.stressTest}),C=O(C)),(null!==(d=null===(y=e.tags)||void 0===y?void 0:y.length)&&void 0!==d?d:0)>0&&(C=C.filter(t=>{var n,o;return null===(o=null===(n=t.options)||void 0===n?void 0:n.tags)||void 0===o?void 0:o.some(t=>{var n;return(null!==(n=null==e?void 0:e.tags)&&void 0!==n?n:[]).includes(t)})})),x.beforeStatus?(m=Array.from(C.map(t=>({date:(new Date).toISOString(),category:u,name:t.name,success:!1,result:"before() failed",ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing}))),m.forEach(t=>s(this,void 0,void 0,function*(){return yield grok.shell.reportTest("package",t)}))):m=yield v(x,e,c);const b=m.filter(t=>"skipped"!=t.result);if(t||(x.afterStatus=yield g(x.after,u)),x.afterStatus&&(a(`Package testing: Category after() {{${u}}} failed`),a(`Package testing: Result for {{${u}}} after: ${x.afterStatus}`),b.push({date:(new Date).toISOString(),category:u,name:"after",success:!1,result:x.afterStatus,ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing})),x.beforeStatus&&(a(`Package testing: Category before() {{${u}}} failed`),a(`Package testing: Result for {{${u}}} before: ${x.beforeStatus}`),b.push({date:(new Date).toISOString(),category:u,name:"before",success:!1,result:x.beforeStatus,ms:0,skipped:!1,logs:"",owner:p,package:f.name,widgetsDifference:0,flaking:DG.Test.isReproducing})),h.push(...b),e.returnOnFail&&b.some(t=>!t.success&&!t.skipped&&t.name!==e.skipToTest))break}}finally{console.log=a,console.info=c,console.warn=l,console.error=u}if(e.testContext.catchUnhandled&&!DG.Test.isInBenchmark){yield T(1e3);const t=yield grok.shell.lastError;if(null!=t){const e={logs:"",date:(new Date).toISOString(),category:"Unhandled exceptions",name:"Exception",result:null!=t?t:"",success:!t,ms:0,skipped:!1,owner:null!=p?p:"",package:f.name,widgetsDifference:0};a(`Package testing: Unhandled Exception: ${t}`),h.push(Object.assign(Object.assign({},e),{flaking:DG.Test.isReproducing&&!t})),e.package=f.name,yield grok.shell.reportTest("package",e)}}})}(y,t);for(let t of h)t.result=t.result.toString().replace(/"/g,"'"),null!=t.logs&&(t.logs=t.logs.toString().replace(/"/g,"'"));return h;function g(t,e){return s(this,void 0,void 0,function*(){let n;try{void 0!==t&&(yield L(()=>s(this,void 0,void 0,function*(){yield t()}),1e5,`before ${e}: timeout error`))}catch(t){n=yield k(t)}return n})}function v(t,e,n){var o,a,c,l,u,y,d,h,g,m,v,b,w,k,O,T,L,A,S;return s(this,void 0,void 0,function*(){let s=null!==(o=t.tests)&&void 0!==o?o:[];const N=[],R=C();if(t.clear){let o=n&&null!=e.skipToTest;for(let n=0;n<s.length;n++){s[n].options&&void 0===(null===(a=s[n].options)||void 0===a?void 0:a.benchmark)&&(s[n].options||(s[n].options={}),s[n].options.benchmark=null!==(c=t.benchmarks)&&void 0!==c&&c);let w=s[n];if(e.test&&e.test.toLowerCase()!==w.name.toLowerCase())continue;if(o){if(null==(null==e?void 0:e.skipToTest)||w.name.toLowerCase().trim()!==(null==e?void 0:e.skipToTest.toLowerCase().trim()))continue;o=!1}(null==w?void 0:w.options)&&(w.options.owner=null!==(d=null!==(y=null!==(u=null===(l=s[n].options)||void 0===l?void 0:l.owner)&&void 0!==u?u:null==t?void 0:t.owner)&&void 0!==y?y:p)&&void 0!==d?d:"");let k=yield D(w,null==e?void 0:e.test,x,DG.Test.isInBenchmark?null!==(g=null===(h=s[n].options)||void 0===h?void 0:h.benchmarkTimeout)&&void 0!==g?g:r:null!==(v=null===(m=s[n].options)||void 0===m?void 0:m.timeout)&&void 0!==v?v:i,f.name,e.verbose);if(k&&(N.push(Object.assign(Object.assign({},k),{widgetsDifference:C()-R})),e.returnOnFail&&e.skipToTest!==w.name&&!k.success&&!k.skipped))return N;e.nodeOptions||!1===(null===(b=e.testContext)||void 0===b?void 0:b.closeAll)||(grok.shell.closeAll(),DG.Balloon.closeAll())}}else{let o=n&&null!=e.skipToTest;for(let n=0;n<s.length;n++){let i=s[n];if(e.test&&e.test.toLowerCase()!==i.name.toLowerCase())continue;if(o){null!=(null==e?void 0:e.skipToTest)&&i.name.toLowerCase().trim()===(null==e?void 0:e.skipToTest.toLowerCase().trim())&&(o=!1);continue}(null==i?void 0:i.options)&&(i.options.owner=null!==(T=null!==(O=null!==(k=null===(w=s[n].options)||void 0===w?void 0:w.owner)&&void 0!==k?k:null==t?void 0:t.owner)&&void 0!==O?O:p)&&void 0!==T?T:"");let a=yield D(i,null==e?void 0:e.test,x,DG.Test.isInBenchmark?null!==(A=null===(L=s[n].options)||void 0===L?void 0:L.benchmarkTimeout)&&void 0!==A?A:r:null===(S=s[n].options)||void 0===S?void 0:S.timeout,f.name,e.verbose);if(a&&(N.push(Object.assign(Object.assign({},a),{widgetsDifference:C()-R})),e.returnOnFail&&e.skipToTest!==i.name&&!a.success&&!a.skipped))return N}}return N})}function C(){var t;if("undefined"!=typeof process)return 0;let e=-1;try{e=DG.Widget.getAll().length}catch(e){console.warn(null!==(t=e.message)&&void 0!==t?t:e)}return e}})}({category:e,test:n,testContext:o});return t.DataFrame.fromObjects(f)})}function R(){return A(this,void 0,void 0,function*(){yield w(S,S.getModule("package-test.js"))})}})(),hittriage_test=o})();
|
|
2
2
|
//# sourceMappingURL=package-test.js.map
|