Remove unnecessary namespaces in tests (#15922)

This commit is contained in:
Andy 2017-04-18 13:57:54 -07:00 committed by GitHub
parent 8779c5d029
commit 53ecd41e90
23 changed files with 822 additions and 2593 deletions

View File

@ -1,15 +1,13 @@
namespace PouchDBAdapterFruitdownTests {
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
let db = new PouchDB<MyModel>(null, {
adapter: 'fruitdown',
});
db.get('model').then((result) => model);
db = new PouchDB<MyModel>('myDb', {
adapter: 'fruitdown',
});
db.get('model').then((result) => model);
}
let db = new PouchDB<MyModel>(null, {
adapter: 'fruitdown',
});
db.get('model').then((result) => model);
db = new PouchDB<MyModel>('myDb', {
adapter: 'fruitdown',
});
db.get('model').then((result) => model);
}

View File

@ -1,12 +1,11 @@
namespace PouchDBAdapterLevelDBTests {
function testConstructor() {
type MyModel = { numericProperty: number };
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB<MyModel>(null, {
adapter: 'leveldb',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'leveldb',
});
}
let db = new PouchDB<MyModel>(null, {
adapter: 'leveldb',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'leveldb',
});
}

View File

@ -1,12 +1,10 @@
namespace PouchDBAdapterLocalStorageyTests {
function testConstructor() {
type MyModel = { numericProperty: number };
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB<MyModel>(null, {
adapter: 'localstorage',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'localstorage',
});
}
let db = new PouchDB<MyModel>(null, {
adapter: 'localstorage',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'localstorage',
});
}

View File

@ -1,12 +1,10 @@
namespace PouchDBAdapterMemoryTests {
function testConstructor() {
type MyModel = { numericProperty: number };
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB<MyModel>(null, {
adapter: 'memory',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'memory',
});
}
let db = new PouchDB<MyModel>(null, {
adapter: 'memory',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'memory',
});
}

View File

@ -1,25 +1,23 @@
namespace PouchDBAdapterNodeWebSQLTests {
function isBoolean(someBoolean: boolean) {
}
function isNumber(someNumber: number) {
}
function isString(someString: string) {
}
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB<MyModel>(null, {
adapter: 'websql',
size: 5,
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'websql',
});
db.info().then((info) => {
isBoolean(info.sqlite_plugin);
isString(info.websql_encoding);
});
}
function isBoolean(someBoolean: boolean) {
}
function isNumber(someNumber: number) {
}
function isString(someString: string) {
}
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB<MyModel>(null, {
adapter: 'websql',
size: 5,
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'websql',
});
db.info().then((info) => {
isBoolean(info.sqlite_plugin);
isString(info.websql_encoding);
});
}

View File

@ -1,26 +1,24 @@
namespace PouchDBAdapterWebSQLTests {
function isBoolean(someBoolean: boolean) {
}
function isNumber(someNumber: number) {
}
function isString(someString: string) {
}
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB('basic');
db = new PouchDB(null, {
adapter: 'websql'
});
db = new PouchDB('sized', {
adapter: 'websql',
size: 10
});
db.info().then((info) => {
isBoolean(info.sqlite_plugin);
isString(info.websql_encoding);
});
}
function isBoolean(someBoolean: boolean) {
}
function isNumber(someNumber: number) {
}
function isString(someString: string) {
}
function testConstructor() {
type MyModel = { numericProperty: number };
let db = new PouchDB('basic');
db = new PouchDB(null, {
adapter: 'websql'
});
db = new PouchDB('sized', {
adapter: 'websql',
size: 10
});
db.info().then((info) => {
isBoolean(info.sqlite_plugin);
isString(info.websql_encoding);
});
}

View File

@ -1,16 +1,14 @@
namespace PouchDBBrowserTests {
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
let db = new PouchDB<MyModel>(null, {
adapter: 'idb',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db.get('model').then((result) => model);
db.viewCleanup().catch((error) => {
});
}
let db = new PouchDB<MyModel>(null, {
adapter: 'idb',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db.get('model').then((result) => model);
db.viewCleanup().catch((error) => {
});
}

View File

@ -1,212 +1,209 @@
namespace PouchDBCoreTests {
function isString(someString: string) {
}
function isNumber(someNumber: number) {
}
function testAllDocs() {
const db = new PouchDB<{ foo: number }>();
db.allDocs().then(({ offset, total_rows, rows }) => {
isNumber(offset);
isNumber(total_rows);
rows.forEach(({ id, key, value, doc }) => {
isString(id);
isString(key);
isString(value.rev);
// check document property
isNumber(doc!.foo);
})
});
db.allDocs({ startkey: "a", endkey: "b" });
db.allDocs({ startkey: "a", endkey: "b", inclusive_end: true });
db.allDocs({ keys: ["a", "b", "c" ]});
db.allDocs({ key: "a" });
db.allDocs({
attachments: true,
binary: true,
conflicts: true,
descending: true,
include_docs: true,
limit: 5,
skip: 1
});
}
function testBulkDocs() {
const db = new PouchDB<MyModel>();
type MyModel = { property: string };
let model = { property: 'test' };
let model2 = { property: 'test' };
db.bulkDocs([model, model2]).then((result) => {
result.forEach(({ ok, id, rev }) => {
isString(id);
isString(rev);
});
});
db.bulkDocs([model, model2], null, (error, response) => {
});
}
function testBulkGet() {
const db = new PouchDB<{}>();
db.bulkGet({docs: [{id: 'a', rev: 'b'}, {id: 'b', rev: 'c'}, {id: 'c', rev: 'd'}]}).then((result) => {});
db.bulkGet({docs: [{id: 'a', rev: 'b'}, {id: 'b', rev: 'c'}, {id: 'c', rev: 'd'}]}, (error, response) => {});
}
function testRevsDiff() {
const db = new PouchDB<{}>();
db.revsDiff({'a': ['1-a', '2-b']}).then((result) => {});
db.revsDiff({'a': ['1-a', '2-b']}, (error, response) => {});
}
function testCompact() {
const db = new PouchDB<{}>();
// Promise version
db.compact().then( (res: PouchDB.Core.Response) => {});
// Promise version with optional options
db.compact({interval: 300}).then( (res: PouchDB.Core.Response) => {});
// Options with a callback
db.compact({interval: 300}, (res: PouchDB.Core.Response) => {});
}
function testDestroy() {
const db = new PouchDB<{}>();
db.destroy({}, (error) => {
});
db.destroy().then(() => {
}).catch((error) => {
});
}
function testBasics() {
type MyModel = { property: string };
let model = { property: 'test' };
const id = 'model';
const db = new PouchDB<MyModel>();
db.post(model).then((result) => {
isString(result.id);
});
db.post(model, null, (error, response) => {
});
db.get(id).then((result) => model = result);
db.get(id, null, (error, result) => {
});
db.put(model).then((error) => {
});
db.put(model, null, (error) => {
});
db.info().then((info) => {
});
db.info((error, result) => {
});
PouchDB.debug.enable('*');
}
function testRemove() {
type MyModel = { property: string };
const id = 'model';
const rev = 'rev';
let model = { _id: id, _rev: rev, existingDocProperty: 'any' };
const db = new PouchDB<MyModel>();
// Promise version with doc
db.remove(model).then( (res: PouchDB.Core.Response) => {});
// Promise version with doc and options
db.remove(model, {}).then( (res: PouchDB.Core.Response) => {});
// Promise version with docId and rev
db.remove(id, rev).then( (res: PouchDB.Core.Response) => {});
// Promise version with docId and rev and options
db.remove(id, rev, {}).then( (res: PouchDB.Core.Response) => {});
// Callback version with doc
db.remove(model, {}, (res: PouchDB.Core.Response) => {});
// Callback version with docId and rev
db.remove(id, rev, {}, (res: PouchDB.Core.Response) => {});
}
function testChanges() {
type MyModel = { foo: string };
const db = new PouchDB<MyModel>();
db.changes({
live: true,
since: 'now',
timeout: 1,
include_docs: true,
limit: 1,
conflicts: true,
attachments: true,
binary: true,
descending: true,
heartbeat: 1,
filter: '',
doc_ids: [''],
query_params: {paramName: 'any'},
view: ''
})
.on('change', (change) => {
let _id: string = change.id;
let _seq: number = change.seq;
let _changes: { rev: string }[] = change.changes;
let _foo: string = change.doc!.foo;
let _deleted: boolean | undefined = change.doc!._deleted;
let _attachments: PouchDB.Core.Attachments | undefined = change.doc!._attachments;
})
.on('complete', (info) => {
let _status: string = info.status;
let _last_req: number = info.last_seq;
let change = info.results[0];
let _id: string = change.id;
let _seq: number = change.seq;
let _changes: { rev: string }[] = change.changes;
let _deleted: boolean | undefined = change.doc!._deleted;
let _attachments: PouchDB.Core.Attachments | undefined = change.doc!._attachments;
});
db.changes({
since: 1,
timeout: false,
limit: false,
heartbeat: false,
filter: (doc: any, params: any) => {}
});
db.changes({ limit: 50 }).then(() => {});
}
function testRemoteOptions() {
let db = new PouchDB('http://example.com/dbname', {
ajax: {
cache: false,
timeout: 10000,
headers: {
'X-Some-Special-Header': 'foo'
},
},
auth: {
username: 'mysecretusername',
password: 'mysecretpassword'
},
skip_setup: true
});
}
function isString(someString: string) {
}
function isNumber(someNumber: number) {
}
function testAllDocs() {
const db = new PouchDB<{ foo: number }>();
db.allDocs().then(({ offset, total_rows, rows }) => {
isNumber(offset);
isNumber(total_rows);
rows.forEach(({ id, key, value, doc }) => {
isString(id);
isString(key);
isString(value.rev);
// check document property
isNumber(doc!.foo);
})
});
db.allDocs({ startkey: "a", endkey: "b" });
db.allDocs({ startkey: "a", endkey: "b", inclusive_end: true });
db.allDocs({ keys: ["a", "b", "c" ]});
db.allDocs({ key: "a" });
db.allDocs({
attachments: true,
binary: true,
conflicts: true,
descending: true,
include_docs: true,
limit: 5,
skip: 1
});
}
function testBulkDocs() {
const db = new PouchDB<MyModel>();
type MyModel = { property: string };
let model = { property: 'test' };
let model2 = { property: 'test' };
db.bulkDocs([model, model2]).then((result) => {
result.forEach(({ ok, id, rev }) => {
isString(id);
isString(rev);
});
});
db.bulkDocs([model, model2], null, (error, response) => {
});
}
function testBulkGet() {
const db = new PouchDB<{}>();
db.bulkGet({docs: [{id: 'a', rev: 'b'}, {id: 'b', rev: 'c'}, {id: 'c', rev: 'd'}]}).then((result) => {});
db.bulkGet({docs: [{id: 'a', rev: 'b'}, {id: 'b', rev: 'c'}, {id: 'c', rev: 'd'}]}, (error, response) => {});
}
function testRevsDiff() {
const db = new PouchDB<{}>();
db.revsDiff({'a': ['1-a', '2-b']}).then((result) => {});
db.revsDiff({'a': ['1-a', '2-b']}, (error, response) => {});
}
function testCompact() {
const db = new PouchDB<{}>();
// Promise version
db.compact().then( (res: PouchDB.Core.Response) => {});
// Promise version with optional options
db.compact({interval: 300}).then( (res: PouchDB.Core.Response) => {});
// Options with a callback
db.compact({interval: 300}, (res: PouchDB.Core.Response) => {});
}
function testDestroy() {
const db = new PouchDB<{}>();
db.destroy({}, (error) => {
});
db.destroy().then(() => {
}).catch((error) => {
});
}
function testBasics() {
type MyModel = { property: string };
let model = { property: 'test' };
const id = 'model';
const db = new PouchDB<MyModel>();
db.post(model).then((result) => {
isString(result.id);
});
db.post(model, null, (error, response) => {
});
db.get(id).then((result) => model = result);
db.get(id, null, (error, result) => {
});
db.put(model).then((error) => {
});
db.put(model, null, (error) => {
});
db.info().then((info) => {
});
db.info((error, result) => {
});
PouchDB.debug.enable('*');
}
function testRemove() {
type MyModel = { property: string };
const id = 'model';
const rev = 'rev';
let model = { _id: id, _rev: rev, existingDocProperty: 'any' };
const db = new PouchDB<MyModel>();
// Promise version with doc
db.remove(model).then( (res: PouchDB.Core.Response) => {});
// Promise version with doc and options
db.remove(model, {}).then( (res: PouchDB.Core.Response) => {});
// Promise version with docId and rev
db.remove(id, rev).then( (res: PouchDB.Core.Response) => {});
// Promise version with docId and rev and options
db.remove(id, rev, {}).then( (res: PouchDB.Core.Response) => {});
// Callback version with doc
db.remove(model, {}, (res: PouchDB.Core.Response) => {});
// Callback version with docId and rev
db.remove(id, rev, {}, (res: PouchDB.Core.Response) => {});
}
function testChanges() {
type MyModel = { foo: string };
const db = new PouchDB<MyModel>();
db.changes({
live: true,
since: 'now',
timeout: 1,
include_docs: true,
limit: 1,
conflicts: true,
attachments: true,
binary: true,
descending: true,
heartbeat: 1,
filter: '',
doc_ids: [''],
query_params: {paramName: 'any'},
view: ''
})
.on('change', (change) => {
let _id: string = change.id;
let _seq: number = change.seq;
let _changes: { rev: string }[] = change.changes;
let _foo: string = change.doc!.foo;
let _deleted: boolean | undefined = change.doc!._deleted;
let _attachments: PouchDB.Core.Attachments | undefined = change.doc!._attachments;
})
.on('complete', (info) => {
let _status: string = info.status;
let _last_req: number = info.last_seq;
let change = info.results[0];
let _id: string = change.id;
let _seq: number = change.seq;
let _changes: { rev: string }[] = change.changes;
let _deleted: boolean | undefined = change.doc!._deleted;
let _attachments: PouchDB.Core.Attachments | undefined = change.doc!._attachments;
});
db.changes({
since: 1,
timeout: false,
limit: false,
heartbeat: false,
filter: (doc: any, params: any) => {}
});
db.changes({ limit: 50 }).then(() => {});
}
function testRemoteOptions() {
let db = new PouchDB('http://example.com/dbname', {
ajax: {
cache: false,
timeout: 10000,
headers: {
'X-Some-Special-Header': 'foo'
},
},
auth: {
username: 'mysecretusername',
password: 'mysecretpassword'
},
skip_setup: true
});
}

View File

@ -1,70 +1,67 @@
namespace PouchDBFindTests {
function testFind() {
const db = new PouchDB<{ foo: number }>();
function testFind() {
const db = new PouchDB<{ foo: number }>();
db.find({
selector: {},
fields: ['fieldName'],
sort: ['fieldName'],
limit: 1,
skip: 1
})
db.find({
selector: {},
fields: ['fieldName'],
sort: ['fieldName'],
limit: 1,
skip: 1
})
db.find({
selector: {},
sort: [{'fieldName': 'asc'}]
});
db.find({
selector: {},
sort: [{'fieldName': 'asc'}]
});
// test combinations of selectors
db.find({
selector: {
// test id
_id: {
gt: null
},
// test combinations of selectors
db.find({
selector: {
// test id
_id: {
gt: null
},
// conditions
foo: {
$lt: null,
$gt: null,
$lte: null,
$gte: null,
$eq: null,
$ne: null,
$elemMatch: null,
// conditions
foo: {
$lt: null,
$gt: null,
$lte: null,
$gte: null,
$eq: null,
$ne: null,
$elemMatch: null,
$exists: true,
$type: "null",
$in: ["string", null, 1, true, {}, []],
$nin: ["string", null, 1, true, {}, []],
$size: 5,
$mod: [1, 2],
$regex: "pattern",
$all: ["string", null, 1, true, {}, []]
},
$exists: true,
$type: "null",
$in: ["string", null, 1, true, {}, []],
$nin: ["string", null, 1, true, {}, []],
$size: 5,
$mod: [1, 2],
$regex: "pattern",
$all: ["string", null, 1, true, {}, []]
},
// value
bar: 'any value',
// value
bar: 'any value',
// combinatons
$and: [],
$or: [],
$nor: [],
$not: [],
// combinatons
$and: [],
$or: [],
$nor: [],
$not: [],
// sub combinations
sub: {
$and: [
{
foo: 'bar',
bar: {
$gt: null
}
// sub combinations
sub: {
$and: [
{
foo: 'bar',
bar: {
$gt: null
}
]
}
}
]
}
});
}
}
});
}

View File

@ -1,11 +1,9 @@
namespace PouchDBHttpTests {
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
let db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db.get('model').then((result) => model);
}
let db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db.get('model').then((result) => model);
}

View File

@ -1,36 +1,34 @@
namespace PouchDBBrowserTests {
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
let db = new PouchDB<MyModel>('mydb');
db.viewCleanup().catch((error) => {
});
}
function testQuery() {
let pouch = new PouchDB<{}>('mydb');
// find pokemon with name === 'Pika pi!'
pouch.query('my_index/by_name', {
key : 'Pika pi!',
include_docs : true
}).then(function (result) {
// handle result
}).catch(function (err) {
// handle errors
});
// find the first 5 pokemon whose name starts with 'P'
pouch.query('my_index/by_name', {
startkey : 'P',
endkey : 'P\uffff',
limit : 5,
include_docs : true
}).then(function (result) {
// handle result
}).catch(function (err) {
// handle errors
});
let db = new PouchDB<MyModel>('mydb');
db.viewCleanup().catch((error) => {
});
}
function testQuery() {
let pouch = new PouchDB<{}>('mydb');
// find pokemon with name === 'Pika pi!'
pouch.query('my_index/by_name', {
key : 'Pika pi!',
include_docs : true
}).then(function (result) {
// handle result
}).catch(function (err) {
// handle errors
});
// find the first 5 pokemon whose name starts with 'P'
pouch.query('my_index/by_name', {
startkey : 'P',
endkey : 'P\uffff',
limit : 5,
include_docs : true
}).then(function (result) {
// handle result
}).catch(function (err) {
// handle errors
});
}
}

View File

@ -1,16 +1,14 @@
namespace PouchDBBrowserTests {
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
function testConstructor() {
type MyModel = { numericProperty: number };
let model: PouchDB.Core.Document<MyModel>;
let db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'leveldb',
});
db.get('model').then((result) => model);
db.viewCleanup().catch((error) => {
});
}
let db = new PouchDB<MyModel>('myDb', {
adapter: 'http',
});
db = new PouchDB<MyModel>('myDb', {
adapter: 'leveldb',
});
db.get('model').then((result) => model);
db.viewCleanup().catch((error) => {
});
}

View File

@ -1,16 +1,13 @@
namespace PouchDBReplicationTests {
/** @todo make some real tests */
function testReplication() {
type Model = { foo: number };
const db = new PouchDB<Model>();
/** @todo make some real tests */
function testReplication() {
type Model = { foo: number };
const db = new PouchDB<Model>();
db.replicate.to('').then((res: PouchDB.Replication.ReplicationResultComplete<Model>) => {
db.replicate.to('').then((res: PouchDB.Replication.ReplicationResultComplete<Model>) => {
});
});
db.replicate.from('').then((res: PouchDB.Replication.ReplicationResultComplete<Model>) => {
db.replicate.from('').then((res: PouchDB.Replication.ReplicationResultComplete<Model>) => {
});
}
});
}

View File

@ -1,47 +1,45 @@
import * as pouchdbUpsert from 'pouchdb-upsert';
PouchDB.plugin(pouchdbUpsert);
namespace PouchDBUpsertTests {
type UpsertDocModel = { _id: 'test-doc1', name: 'test' };
let docToUpsert: PouchDB.Core.Document<UpsertDocModel>;
const db = new PouchDB<UpsertDocModel>();
type UpsertDocModel = { _id: 'test-doc1', name: 'test' };
let docToUpsert: PouchDB.Core.Document<UpsertDocModel>;
const db = new PouchDB<UpsertDocModel>();
function testUpsert_WithPromise_AndReturnDoc() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return doc;
}).then((res: PouchDB.Core.Response) => {
});
}
function testUpsert_WithPromise_AndReturnBoolean() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return false;
}).then((res: PouchDB.Core.Response) => {
});
}
function testUpsert_WithCallback_AndReturnDoc() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return doc;
}, (res: PouchDB.Core.Response) => {});
}
function testUpsert_WithCallback_AndReturnBoolean() {
// callback return boolean
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return false;
}, (res: PouchDB.Core.Response) => {});
}
function testPutIfNotExists_WithPromise() {
db.putIfNotExists(docToUpsert).then( (res: PouchDB.Core.Response) => {});
}
function testPutIfNotExists_WithCallback() {
db.putIfNotExists(docToUpsert, (res: PouchDB.Core.Response) => {});
}
function testUpsert_WithPromise_AndReturnDoc() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return doc;
}).then((res: PouchDB.Core.Response) => {
});
}
function testUpsert_WithPromise_AndReturnBoolean() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return false;
}).then((res: PouchDB.Core.Response) => {
});
}
function testUpsert_WithCallback_AndReturnDoc() {
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return doc;
}, (res: PouchDB.Core.Response) => {});
}
function testUpsert_WithCallback_AndReturnBoolean() {
// callback return boolean
db.upsert(docToUpsert._id, (doc: PouchDB.Core.Document<UpsertDocModel>) => {
// Make some updates....
return false;
}, (res: PouchDB.Core.Response) => {});
}
function testPutIfNotExists_WithPromise() {
db.putIfNotExists(docToUpsert).then( (res: PouchDB.Core.Response) => {});
}
function testPutIfNotExists_WithCallback() {
db.putIfNotExists(docToUpsert, (res: PouchDB.Core.Response) => {});
}

View File

@ -1,106 +1,104 @@
import * as PouchDB from 'pouchdb';
namespace PouchDBTests {
function isString(someString: string) {
}
function isNumber(someNumber: number) {
}
function testAllDocs() {
const db = new PouchDB<{ foo: number }>();
db.allDocs().then(({ offset, total_rows, rows }) => {
isNumber(offset);
isNumber(total_rows);
rows.forEach(({ id, key, value, doc }) => {
isString(id);
isString(key);
isString(value.rev);
// check document property
isNumber(doc.foo);
})
});
db.allDocs({ startkey: "a", endkey: "b" });
db.allDocs({ startkey: "a", endkey: "b", inclusive_end: true });
db.allDocs({ keys: ["a", "b", "c" ]});
db.allDocs({ key: "a" });
db.allDocs({
attachments: true,
binary: true,
conflicts: true,
descending: true,
include_docs: true,
limit: 5,
skip: 1
});
}
function testDestroy() {
const db = new PouchDB<{}>();
db.destroy({}, (error) => {
});
db.destroy().then(() => {
}).catch((error) => {
});
}
function testBasics() {
type MyModel = { property: 'someProperty '};
let model: PouchDB.Core.Document<MyModel>;
const id = 'model';
let db = new PouchDB<MyModel>();
db = new PouchDB<MyModel>(null, {
adapter: 'fruitdown'
});
db = new PouchDB<MyModel>(null, {
adapter: 'http'
});
db = new PouchDB<MyModel>(null, {
adapter: 'idb'
});
db = new PouchDB<MyModel>(null, {
adapter: 'leveldb'
});
db = new PouchDB<MyModel>(null, {
adapter: 'localstorage'
});
db = new PouchDB<MyModel>(null, {
adapter: 'memory'
});
db = new PouchDB<MyModel>(null, {
adapter: 'websql'
});
db = new PouchDB<MyModel>(null, {
adapter: 'websql',
size: 100
});
db.post(model).then((result) => {
isString(result.id);
});
db.post(model, null, (error, response) => {
});
db.get(id).then((result) => model = result);
db.get(id, null, (error, result) => {
});
db.put(model).then((error) => {
});
db.put(model, null, (error) => {
});
db.info().then((info) => {
});
db.info((error, result) => {
});
db.viewCleanup().catch((error) => {
});
}
function isString(someString: string) {
}
function isNumber(someNumber: number) {
}
function testAllDocs() {
const db = new PouchDB<{ foo: number }>();
db.allDocs().then(({ offset, total_rows, rows }) => {
isNumber(offset);
isNumber(total_rows);
rows.forEach(({ id, key, value, doc }) => {
isString(id);
isString(key);
isString(value.rev);
// check document property
isNumber(doc.foo);
})
});
db.allDocs({ startkey: "a", endkey: "b" });
db.allDocs({ startkey: "a", endkey: "b", inclusive_end: true });
db.allDocs({ keys: ["a", "b", "c" ]});
db.allDocs({ key: "a" });
db.allDocs({
attachments: true,
binary: true,
conflicts: true,
descending: true,
include_docs: true,
limit: 5,
skip: 1
});
}
function testDestroy() {
const db = new PouchDB<{}>();
db.destroy({}, (error) => {
});
db.destroy().then(() => {
}).catch((error) => {
});
}
function testBasics() {
type MyModel = { property: 'someProperty '};
let model: PouchDB.Core.Document<MyModel>;
const id = 'model';
let db = new PouchDB<MyModel>();
db = new PouchDB<MyModel>(null, {
adapter: 'fruitdown'
});
db = new PouchDB<MyModel>(null, {
adapter: 'http'
});
db = new PouchDB<MyModel>(null, {
adapter: 'idb'
});
db = new PouchDB<MyModel>(null, {
adapter: 'leveldb'
});
db = new PouchDB<MyModel>(null, {
adapter: 'localstorage'
});
db = new PouchDB<MyModel>(null, {
adapter: 'memory'
});
db = new PouchDB<MyModel>(null, {
adapter: 'websql'
});
db = new PouchDB<MyModel>(null, {
adapter: 'websql',
size: 100
});
db.post(model).then((result) => {
isString(result.id);
});
db.post(model, null, (error, response) => {
});
db.get(id).then((result) => model = result);
db.get(id, null, (error, result) => {
});
db.put(model).then((error) => {
});
db.put(model, null, (error) => {
});
db.info().then((info) => {
});
db.info((error, result) => {
});
db.viewCleanup().catch((error) => {
});
}

View File

@ -4,7 +4,7 @@ import * as pug from 'pug';
////////////////////////////////////////////////////////////
/// Options https://pugjs.org/api/reference.html#options ///
////////////////////////////////////////////////////////////
namespace options_tests {
{
let opts: pug.Options = {};
let str = 'string'
let bool = false;
@ -38,7 +38,7 @@ namespace options_tests {
////////////////////////////////////////////////////////////
/// Methods https://pugjs.org/api/reference.html#methods ///
////////////////////////////////////////////////////////////
namespace methods_tests {
{
let source = `p #{ name } 's Pug source code!`;
let path = "foo.pug";
let compileTemplate: pug.compileTemplate;

View File

@ -1,6 +1,7 @@
import * as queryString from 'query-string';
namespace stringify_tests {
// stringify
{
let result: string;
// test obj
result = queryString.stringify({
@ -18,7 +19,8 @@ namespace stringify_tests {
result = queryString.stringify({ foo: 'bar' }, { strict: false, encode: false });
}
namespace parse_tests {
// parse
{
let fooBar: { foo: 'bar' };
fooBar = queryString.parse('?foo=bar');
fooBar = queryString.parse('#foo=bar');
@ -27,7 +29,8 @@ namespace parse_tests {
fooBarBaz = queryString.parse('&foo=bar&foo=baz');
}
namespace extract_tests {
// extract
{
let result: string;
result = queryString.extract('http://foo.bar/?abc=def&hij=klm');
result = queryString.extract('http://foo.bar/?foo=bar');

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ import responseTime = require('response-time');
// expressconnect tests https://github.com/expressjs/response-time#expressconnect //
////////////////////////////////////////////////////////////////////////////////////
import express = require('express')
namespace express_connect_tests {
{
const app = express()
app.use(responseTime())
}
@ -15,7 +15,7 @@ namespace express_connect_tests {
// vanilla http server tests https://github.com/expressjs/response-time#vanilla-http-server //
//////////////////////////////////////////////////////////////////////////////////////////////
import http = require('http')
namespace vanilla_http_server_tests {
{
// create "middleware"
var _responseTime = responseTime()
http.createServer(function (req, res) {
@ -33,7 +33,7 @@ namespace vanilla_http_server_tests {
//////////////////////////////////////////////////////////////////////////////////////////////////
// response time metrics tests https://github.com/expressjs/response-time#response-time-metrics //
//////////////////////////////////////////////////////////////////////////////////////////////////
namespace response_time_metrics_tests {
{
const app = express()
app.use(responseTime(function (req, res, time) {
let num: number = time;

View File

@ -1,84 +1,82 @@
namespace SigmaJsTests {
var container = document.createElement("sigma");
var s = new sigma({
settings: {
autoResize: true,
autoRescale: true
}
});
s.settings({
maxNodeSize: 10
});
s.settings("maxNodeSize");
s.addRenderer({
type: 'canvas',
container: container
});
s.bind('clickNode', (e) => {
s.refresh();
});
sigma.canvas.edges['def'] = function() {};
sigma.svg.nodes['def'] = {create: (obj: SigmaJs.Node) => { return new Element(); },
update: (obj: SigmaJs.Node) => { return; }};
sigma.svg.edges['def'] = {create: (obj: SigmaJs.Edge) => { return new Element(); },
update: (obj: SigmaJs.Edge) => { return; }};
sigma.svg.edges.labels['def'] = {create: (obj: SigmaJs.Edge) => { return new Element(); },
update: (obj: SigmaJs.Edge) => { return; }};
var N = 100;
var E = 500;
// Generate a random graph:
for (var i = 0; i < N; i++) {
s.graph.addNode({
id: 'n' + i,
label: 'Node ' + i,
x: Math.random(),
y: Math.random(),
size: Math.random(),
color: '#666'
});
var container = document.createElement("sigma");
var s = new sigma({
settings: {
autoResize: true,
autoRescale: true
}
});
for (var j = 0; j < E; j++) {
s.graph.addEdge({
id: 'e' + j,
source: 'n' + Math.floor(Math.random() * N),
target: 'n' + Math.floor(Math.random() * N),
size: Math.random(),
color: '#ccc'
});
}
s.settings({
maxNodeSize: 10
});
sigma.plugins.dragNodes(s, s.renderers[0]);
s.renderers[0].resize();
s.settings("maxNodeSize");
s.addRenderer({
type: 'canvas',
container: container
});
s.bind('clickNode', (e) => {
s.refresh();
});
sigma.parsers.json('myGraph.json', s, () => {
s.refresh();
});
sigma.canvas.edges['def'] = function() {};
sigma.svg.nodes['def'] = {create: (obj: SigmaJs.Node) => { return new Element(); },
update: (obj: SigmaJs.Node) => { return; }};
sigma.svg.edges['def'] = {create: (obj: SigmaJs.Edge) => { return new Element(); },
update: (obj: SigmaJs.Edge) => { return; }};
sigma.svg.edges.labels['def'] = {create: (obj: SigmaJs.Edge) => { return new Element(); },
update: (obj: SigmaJs.Edge) => { return; }};
sigma.parsers.gexf('myGraph.gexf', s, () => {
s.refresh();
});
s.configForceAtlas2({
worker: true
});
s.isForceAtlas2Running();
s.killForceAtlas2();
s.startForceAtlas2();
s.stopForceAtlas2();
s.cameras[0].goTo({
angle: 0,
x: 100,
y: 100,
ratio: 1
var N = 100;
var E = 500;
// Generate a random graph:
for (var i = 0; i < N; i++) {
s.graph.addNode({
id: 'n' + i,
label: 'Node ' + i,
x: Math.random(),
y: Math.random(),
size: Math.random(),
color: '#666'
});
}
for (var j = 0; j < E; j++) {
s.graph.addEdge({
id: 'e' + j,
source: 'n' + Math.floor(Math.random() * N),
target: 'n' + Math.floor(Math.random() * N),
size: Math.random(),
color: '#ccc'
});
}
sigma.plugins.dragNodes(s, s.renderers[0]);
s.renderers[0].resize();
s.refresh();
sigma.parsers.json('myGraph.json', s, () => {
s.refresh();
});
sigma.parsers.gexf('myGraph.gexf', s, () => {
s.refresh();
});
s.configForceAtlas2({
worker: true
});
s.isForceAtlas2Running();
s.killForceAtlas2();
s.startForceAtlas2();
s.stopForceAtlas2();
s.cameras[0].goTo({
angle: 0,
x: 100,
y: 100,
ratio: 1
});

View File

@ -1,8 +1,8 @@
import * as format from "string-template";
import * as compile from "string-template/compile";
namespace format_tests {
// Format tests
{
let greeting: string;
// Format using an object hash with keys matching [0-9a-zA-Z]+
@ -23,8 +23,8 @@ namespace format_tests {
}
namespace compile_tests {
// Compile tests
{
{
let greetingTemplate = compile("Hello {0}, you have {1} unread messages", true)
// -> greetingTemplate generated using new Function

View File

@ -1,136 +1,145 @@
// Neurons
// =======
namespace NeuronTests {
{
// project
// -------
var A = new Neuron();
var B = new Neuron();
A.project(B); // A now projects a connection to B
A.project(A); // Neurons can also self-connect
// gate
// ----
var A = new Neuron();
var B = new Neuron();
var connection = A.project(B);
var C = new Neuron();
C.gate(connection); // now C gates the connection between A and B
// activate
// --------
var A = new Neuron();
var B = new Neuron();
A.project(B);
A.activate(0.5); // 0.5
B.activate(); // 0.3244554645
// propagate
// ---------
var A = new Neuron();
var B = new Neuron();
A.project(B);
var learningRate = .3;
for (var i = 0; i < 20000; i++) {
// when A activates 1
A.activate(1);
// train B to activate 0
B.activate();
B.propagate(learningRate, 0);
{
const A = new Neuron();
const B = new Neuron();
A.project(B); // A now projects a connection to B
A.project(A); // Neurons can also self-connect
}
// test it
A.activate(1);
B.activate(); // 0.006540565760853365
// gate
{
const A = new Neuron();
const B = new Neuron();
const connection = A.project(B);
// squashing function and bias
var A = new Neuron();
A.squash = Neuron.squash.TANH;
A.bias = 1;
const C = new Neuron();
C.gate(connection); // now C gates the connection between A and B
}
// activate
{
const A = new Neuron();
const B = new Neuron();
A.project(B);
A.activate(0.5); // 0.5
B.activate(); // 0.3244554645
}
// propagate
{
const A = new Neuron();
const B = new Neuron();
A.project(B);
const learningRate = .3;
for (let i = 0; i < 20000; i++) {
// when A activates 1
A.activate(1);
// train B to activate 0
B.activate();
B.propagate(learningRate, 0);
}
// test it
A.activate(1);
B.activate(); // 0.006540565760853365
}
{
// squashing function and bias
const A = new Neuron();
A.squash = Neuron.squash.TANH;
A.bias = 1;
}
}
// Layers
// ======
namespace LayerTests {
{
// project
// -------
var A = new Layer(5);
var B = new Layer(3);
A.project(B, Layer.connectionType.ALL_TO_ALL); // All the neurons in layer A now project a connection to all the neurons in layer B
A.project(A, Layer.connectionType.ONE_TO_ONE);
// gate
// ----
var A = new Layer(5);
var B = new Layer(3);
var connection = A.project(B);
var C = new Layer(4);
C.gate(connection, Layer.gateType.INPUT); // now C gates the connection between A and B (input gate)
// activate
// --------
var A = new Layer(5);
var B = new Layer(3);
A.project(B);
A.activate([1, 0, 1, 0, 1]); // [1,0,1,0,1]
B.activate(); // [0.3280457, 0.83243247, 0.5320423]
// propagate
// ---------
var A = new Layer(5);
var B = new Layer(2);
A.project(B);
var learningRate = .3;
for (var i = 0; i < 20000; i++) {
// when A activates [1, 0, 1, 0, 1]
A.activate([1, 0, 1, 0, 1]);
// train B to activate [0,0]
B.activate();
B.propagate(learningRate, [0, 0]);
{
const A = new Layer(5);
const B = new Layer(3);
A.project(B, Layer.connectionType.ALL_TO_ALL); // All the neurons in layer A now project a connection to all the neurons in layer B
A.project(A, Layer.connectionType.ONE_TO_ONE);
}
// test it
A.activate([1, 0, 1, 0, 1]);
B.activate(); // [0.004606949693864496, 0.004606763721459169]
// gate
{
const A = new Layer(5);
const B = new Layer(3);
const connection = A.project(B);
// squashing function and bias
A.set({
squash: Neuron.squash.TANH,
bias: 0
})
const C = new Layer(4);
C.gate(connection, Layer.gateType.INPUT); // now C gates the connection between A and B (input gate)
}
// neurons
// -------
A.neurons();
// activate
{
const A = new Layer(5);
const B = new Layer(3);
A.project(B);
A.activate([1, 0, 1, 0, 1]); // [1,0,1,0,1]
B.activate(); // [0.3280457, 0.83243247, 0.5320423]
}
// propagate
{
const A = new Layer(5);
const B = new Layer(2);
A.project(B);
const learningRate = .3;
for (let i = 0; i < 20000; i++) {
// when A activates [1, 0, 1, 0, 1]
A.activate([1, 0, 1, 0, 1]);
// train B to activate [0,0]
B.activate();
B.propagate(learningRate, [0, 0]);
}
// test it
A.activate([1, 0, 1, 0, 1]);
B.activate(); // [0.004606949693864496, 0.004606763721459169]
// squashing function and bias
A.set({
squash: Neuron.squash.TANH,
bias: 0
})
// neurons
// -------
A.neurons();
}
}
// Networks
// ========
namespace NetworkTests {
var inputLayer = new Layer(4);
var hiddenLayer = new Layer(6);
var outputLayer = new Layer(2);
{
let inputLayer = new Layer(4);
let hiddenLayer = new Layer(6);
let outputLayer = new Layer(2);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var A = new Network({
const A = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
var B = new Network({
const B = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
@ -143,24 +152,24 @@ namespace NetworkTests {
// gate
// ----
var C = new Network({
const C = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
var connection = A.project(B);
const connection = A.project(B);
C.gate(connection, Layer.gateType.INPUT); // now C's output layer gates the connection between A's output layer and B's input layer (input gate)
// activate
// --------
var inputLayer = new Layer(4);
var hiddenLayer = new Layer(6);
var outputLayer = new Layer(2);
inputLayer = new Layer(4);
hiddenLayer = new Layer(6);
outputLayer = new Layer(2);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
let myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
@ -171,22 +180,22 @@ namespace NetworkTests {
// propagate
// ---------
// create the network
var inputLayer = new Layer(2);
var hiddenLayer = new Layer(3);
var outputLayer = new Layer(1);
inputLayer = new Layer(2);
hiddenLayer = new Layer(3);
outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
// train the network
var learningRate = .3;
for (var i = 0; i < 20000; i++) {
let learningRate = .3;
for (let i = 0; i < 20000; i++) {
// 0,0 => 0
myNetwork.activate([0, 0]);
myNetwork.propagate(learningRate, [0]);
@ -218,14 +227,14 @@ namespace NetworkTests {
// toJSON/fromJSON
// ---------------
var exported = myNetwork.toJSON();
var imported = Network.fromJSON(exported);
const exported = myNetwork.toJSON();
const imported = Network.fromJSON(exported);
// worker
// ------
// training set
var learningRate = .3;
var trainingSet = [
learningRate = .3;
const trainingSet = [
{
input: [0, 0],
output: [0]
@ -245,21 +254,21 @@ namespace NetworkTests {
];
// create a network
var inputLayer = new Layer(2);
var hiddenLayer = new Layer(3);
var outputLayer = new Layer(1);
inputLayer = new Layer(2);
hiddenLayer = new Layer(3);
outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
// create a worker
var myWorker = myNetwork.worker();
const myWorker = myNetwork.worker();
// activate the network
function activateWorker(input: number[]) {
@ -290,10 +299,10 @@ namespace NetworkTests {
index = 0;
iterations++;
if (iterations % 100 == 0) {
var output00 = myNetwork.activate([0, 0]);
var output01 = myNetwork.activate([0, 1]);
var output10 = myNetwork.activate([1, 0]);
var output11 = myNetwork.activate([1, 1]);
const output00 = myNetwork.activate([0, 0]);
const output01 = myNetwork.activate([0, 1]);
const output10 = myNetwork.activate([1, 0]);
const output11 = myNetwork.activate([1, 1]);
console.log("0,0 => ", output00);
console.log("0,1 => ", output01);
@ -312,46 +321,46 @@ namespace NetworkTests {
}
// kick it
var index = 0;
var iterations = 0;
let index = 0;
let iterations = 0;
activateWorker(trainingSet[index].input);
// standalone
// ----------
var inputLayer = new Layer(4);
var hiddenLayer = new Layer(6);
var outputLayer = new Layer(2);
inputLayer = new Layer(4);
hiddenLayer = new Layer(6);
outputLayer = new Layer(2);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
var standalone = myNetwork.standalone();
const standalone = myNetwork.standalone();
myNetwork.activate([1, 0, 1, 0]); // [0.5466397925108878, 0.5121246668637663]
standalone([1, 0, 1, 0]); // [0.5466397925108878, 0.5121246668637663]
// clone
// -----
var inputLayer = new Layer(4);
var hiddenLayer = new Layer(6);
var outputLayer = new Layer(2);
inputLayer = new Layer(4);
hiddenLayer = new Layer(6);
outputLayer = new Layer(2);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
var clone = myNetwork.clone();
const clone = myNetwork.clone();
myNetwork.activate([1, 0, 1, 0]); // [0.5466397925108878, 0.5121246668637663]
clone.activate([1, 0, 1, 0]); // [0.5466397925108878, 0.5121246668637663]
@ -362,14 +371,14 @@ namespace NetworkTests {
// set
// ---
var inputLayer = new Layer(4);
var hiddenLayer = new Layer(6);
var outputLayer = new Layer(2);
inputLayer = new Layer(4);
hiddenLayer = new Layer(6);
outputLayer = new Layer(2);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network();
myNetwork = new Network();
myNetwork.set({
input: inputLayer,
@ -380,28 +389,28 @@ namespace NetworkTests {
// Architect
// =========
namespace ArchitectTests {
{
// Perceptron
// ----------
var myPerceptron = new Architect.Perceptron(2, 3, 1);
const myPerceptron = new Architect.Perceptron(2, 3, 1);
// LSTM
// ----
var myLSTM = new Architect.LSTM(2, 6, 1);
const myLSTM = new Architect.LSTM(2, 6, 1);
// Liquid
// ------
var input = 2;
var pool = 20;
var output = 1;
var connections = 30;
var gates = 10;
const input = 2;
const pool = 20;
const output = 1;
const connections = 30;
const gates = 10;
var myLiquidStateMachine = new Architect.Liquid(input, pool, output, connections, gates);
const myLiquidStateMachine = new Architect.Liquid(input, pool, output, connections, gates);
// Hopfield
// --------
var hopfield = new Architect.Hopfield(10) // create a network for 10-bit patterns
const hopfield = new Architect.Hopfield(10) // create a network for 10-bit patterns
// teach the network two different patterns
hopfield.learn([
@ -416,13 +425,13 @@ namespace ArchitectTests {
// Trainer
// =======
namespace TrainerTests {
{
// train
// -----
var myNetwork = new Architect.Perceptron(2, 2, 1)
var trainer = new Trainer(myNetwork)
let myNetwork = new Architect.Perceptron(2, 2, 1)
let trainer = new Trainer(myNetwork)
var trainingSet = [
let trainingSet = [
{
input: [0, 0],
output: [0]
@ -443,7 +452,7 @@ namespace TrainerTests {
trainer.train(trainingSet);
var traningOptions = {
const traningOptions = {
rate: .1,
iterations: 20000,
error: .005,
@ -465,14 +474,14 @@ namespace TrainerTests {
// trainAsync
// ----------
var trainer = new Trainer(myNetwork);
trainer = new Trainer(myNetwork);
trainer.trainAsync(trainingSet, traningOptions)
.then((results: any) => console.log('done!', results))
var myNetwork = new Architect.Perceptron(2, 2, 1)
var trainer = new Trainer(myNetwork)
myNetwork = new Architect.Perceptron(2, 2, 1)
trainer = new Trainer(myNetwork)
var trainingSet = [
trainingSet = [
{
input: [0, 0],
output: [0]
@ -499,7 +508,7 @@ namespace TrainerTests {
// XOR
// ---
var trainer = new Trainer(myNetwork);
trainer = new Trainer(myNetwork);
trainer.XOR(); // {error: 0.004999821588193305, iterations: 21333, time: 111}
// DSR

View File

@ -66,7 +66,7 @@ import trimFunc = require('validator/lib/trim');
import unescapeFunc = require('validator/lib/unescape');
import whitelistFunc = require('validator/lib/whitelist');
namespace import_tests {
{
let _blacklist = validator.blacklist;
_blacklist = blacklistFunc;