mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
Remove unnecessary namespaces in tests (#15922)
This commit is contained in:
parent
8779c5d029
commit
53ecd41e90
@ -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);
|
||||
}
|
||||
|
||||
@ -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',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -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',
|
||||
});
|
||||
}
|
||||
|
||||
@ -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',
|
||||
});
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@ -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) => {
|
||||
});
|
||||
}
|
||||
|
||||
@ -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
|
||||
});
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) => {
|
||||
});
|
||||
}
|
||||
|
||||
@ -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>) => {
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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) => {});
|
||||
}
|
||||
|
||||
@ -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) => {
|
||||
});
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
@ -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;
|
||||
|
||||
@ -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
|
||||
});
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user