Commit 2efd6f27 by Jonathan Derrough

Added FaceMatcher.toJSON() & LabeledFaceDescriptors.toJSON()

Reverted build/ & dist/ to master
parent 875898d7
...@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors { ...@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors {
constructor(label: string, descriptors: Float32Array[]); constructor(label: string, descriptors: Float32Array[]);
readonly label: string; readonly label: string;
readonly descriptors: Float32Array[]; readonly descriptors: Float32Array[];
static fromJSON(jsonString: string): LabeledFaceDescriptors;
static fromPOJO(pojo: any): LabeledFaceDescriptors;
} }
...@@ -21,15 +21,6 @@ var LabeledFaceDescriptors = /** @class */ (function () { ...@@ -21,15 +21,6 @@ var LabeledFaceDescriptors = /** @class */ (function () {
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
LabeledFaceDescriptors.fromJSON = function (jsonString) {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
};
LabeledFaceDescriptors.fromPOJO = function (pojo) {
var descriptors = pojo._descriptors.map(function (d) {
return new Float32Array(Object.keys(d).map(function (key) { return d[key]; }));
});
return new LabeledFaceDescriptors(pojo._label, descriptors);
};
return LabeledFaceDescriptors; return LabeledFaceDescriptors;
}()); }());
exports.LabeledFaceDescriptors = LabeledFaceDescriptors; exports.LabeledFaceDescriptors = LabeledFaceDescriptors;
......
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":";;AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IAEvD,+BAAQ,GAAtB,UAAuB,UAAkB;QACvC,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IAEa,+BAAQ,GAAtB,UAAuB,IAAS;QAC9B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,CAAM;YAC/C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAN,CAAM,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEH,6BAAC;AAAD,CAAC,AA/BD,IA+BC;AA/BY,wDAAsB"} {"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":";;AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,wDAAsB"}
\ No newline at end of file \ No newline at end of file
...@@ -10,6 +10,4 @@ export declare class FaceMatcher { ...@@ -10,6 +10,4 @@ export declare class FaceMatcher {
computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number; computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
matchDescriptor(queryDescriptor: Float32Array): FaceMatch; matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
findBestMatch(queryDescriptor: Float32Array): FaceMatch; findBestMatch(queryDescriptor: Float32Array): FaceMatch;
static fromJSON(jsonString: string): FaceMatcher;
static fromPOJO(pojo: any): FaceMatcher;
} }
...@@ -57,14 +57,6 @@ var FaceMatcher = /** @class */ (function () { ...@@ -57,14 +57,6 @@ var FaceMatcher = /** @class */ (function () {
? bestMatch ? bestMatch
: new FaceMatch_1.FaceMatch('unknown', bestMatch.distance); : new FaceMatch_1.FaceMatch('unknown', bestMatch.distance);
}; };
FaceMatcher.fromJSON = function (jsonString) {
return FaceMatcher.fromPOJO(JSON.parse(jsonString));
};
FaceMatcher.fromPOJO = function (pojo) {
var labeledDescriptors = pojo._labeledDescriptors
.map(function (ld) { return LabeledFaceDescriptors_1.LabeledFaceDescriptors.fromPOJO(ld); });
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold);
};
return FaceMatcher; return FaceMatcher;
}()); }());
exports.FaceMatcher = FaceMatcher; exports.FaceMatcher = FaceMatcher;
......
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"} {"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":";;AAAA,kDAAiD;AACjD,4EAA2E;AAC3E,0DAAyD;AAGzD;IAKE,qBACE,MAAgJ,EAChJ,iBAA+B;QAA/B,kCAAA,EAAA,uBAA+B;QAG/B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAE3C,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QAED,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAM,iBAAiB,GAAG,cAAM,OAAA,YAAU,KAAK,EAAI,EAAnB,CAAmB,CAAA;QAEnD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7C,IAAI,IAAI,YAAY,+CAAsB,EAAE;gBAC1C,OAAO,IAAI,CAAA;aACZ;YAED,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/D;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,YAAY,YAAY,EAAE;gBAC9D,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;aAC1E;YAED,MAAM,IAAI,KAAK,CAAC,qMAAqM,CAAC,CAAA;QACxN,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sBAAW,2CAAkB;aAA7B,cAA4D,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAC7F,sBAAW,0CAAiB;aAA5B,cAAyC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;;;OAAA;IAElE,yCAAmB,GAA1B,UAA2B,eAA6B,EAAE,WAA2B;QACnF,OAAO,WAAW;aACf,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,qCAAiB,CAAC,CAAC,EAAE,eAAe,CAAC,EAArC,CAAqC,CAAC;aAC/C,MAAM,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,GAAG,EAAE,EAAP,CAAO,EAAE,CAAC,CAAC;cAC3B,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,qCAAe,GAAtB,UAAuB,eAA6B;QAApD,iBAOC;QANC,OAAO,IAAI,CAAC,kBAAkB;aAC3B,GAAG,CAAC,UAAC,EAAsB;gBAApB,4BAAW,EAAE,gBAAK;YAAO,OAAA,IAAI,qBAAS,CAC1C,KAAK,EACL,KAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CACzD;QAHgC,CAGhC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAA3C,CAA2C,CAAC,CAAA;IACxE,CAAC;IAEM,mCAAa,GAApB,UAAqB,eAA6B;QAChD,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACvD,OAAO,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,qBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEH,kBAAC;AAAD,CAAC,AAhED,IAgEC;AAhEY,kCAAW"}
\ No newline at end of file \ No newline at end of file
...@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors { ...@@ -4,6 +4,4 @@ export declare class LabeledFaceDescriptors {
constructor(label: string, descriptors: Float32Array[]); constructor(label: string, descriptors: Float32Array[]);
readonly label: string; readonly label: string;
readonly descriptors: Float32Array[]; readonly descriptors: Float32Array[];
static fromJSON(jsonString: string): LabeledFaceDescriptors;
static fromPOJO(pojo: any): LabeledFaceDescriptors;
} }
...@@ -19,15 +19,6 @@ var LabeledFaceDescriptors = /** @class */ (function () { ...@@ -19,15 +19,6 @@ var LabeledFaceDescriptors = /** @class */ (function () {
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
LabeledFaceDescriptors.fromJSON = function (jsonString) {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
};
LabeledFaceDescriptors.fromPOJO = function (pojo) {
var descriptors = pojo._descriptors.map(function (d) {
return new Float32Array(Object.keys(d).map(function (key) { return d[key]; }));
});
return new LabeledFaceDescriptors(pojo._label, descriptors);
};
return LabeledFaceDescriptors; return LabeledFaceDescriptors;
}()); }());
export { LabeledFaceDescriptors }; export { LabeledFaceDescriptors };
......
{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IAEvD,+BAAQ,GAAtB,UAAuB,UAAkB;QACvC,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IAEa,+BAAQ,GAAtB,UAAuB,IAAS;QAC9B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAC,CAAM;YAC/C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,CAAC,EAAN,CAAM,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEH,6BAAC;AAAD,CAAC,AA/BD,IA+BC"} {"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC"}
\ No newline at end of file \ No newline at end of file
...@@ -10,6 +10,4 @@ export declare class FaceMatcher { ...@@ -10,6 +10,4 @@ export declare class FaceMatcher {
computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number; computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
matchDescriptor(queryDescriptor: Float32Array): FaceMatch; matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
findBestMatch(queryDescriptor: Float32Array): FaceMatch; findBestMatch(queryDescriptor: Float32Array): FaceMatch;
static fromJSON(jsonString: string): FaceMatcher;
static fromPOJO(pojo: any): FaceMatcher;
} }
...@@ -55,14 +55,6 @@ var FaceMatcher = /** @class */ (function () { ...@@ -55,14 +55,6 @@ var FaceMatcher = /** @class */ (function () {
? bestMatch ? bestMatch
: new FaceMatch('unknown', bestMatch.distance); : new FaceMatch('unknown', bestMatch.distance);
}; };
FaceMatcher.fromJSON = function (jsonString) {
return FaceMatcher.fromPOJO(JSON.parse(jsonString));
};
FaceMatcher.fromPOJO = function (pojo) {
var labeledDescriptors = pojo._labeledDescriptors
.map(function (ld) { return LabeledFaceDescriptors.fromPOJO(ld); });
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold);
};
return FaceMatcher; return FaceMatcher;
}()); }());
export { FaceMatcher }; export { FaceMatcher };
......
{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"} {"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -18,15 +18,19 @@ export class LabeledFaceDescriptors { ...@@ -18,15 +18,19 @@ export class LabeledFaceDescriptors {
public get label(): string { return this._label } public get label(): string { return this._label }
public get descriptors(): Float32Array[] { return this._descriptors } public get descriptors(): Float32Array[] { return this._descriptors }
public static toJSON(ld: LabeledFaceDescriptors): string {
return `{"label":"${ld.label}","descriptors":[${ld.descriptors.map((d) => `[${Array.from(d)}]`)}]}`;
}
public static fromJSON(jsonString: string): LabeledFaceDescriptors { public static fromJSON(jsonString: string): LabeledFaceDescriptors {
return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString)); return LabeledFaceDescriptors.fromPOJO(JSON.parse(jsonString));
} }
public static fromPOJO(pojo: any): LabeledFaceDescriptors { public static fromPOJO(pojo: any): LabeledFaceDescriptors {
const descriptors = pojo._descriptors.map((d: any) => { const descriptors = pojo.descriptors.map((d: any) => {
return new Float32Array(Object.keys(d).map(key => d[key])); return new Float32Array(d);
}); });
return new LabeledFaceDescriptors(pojo._label, descriptors); return new LabeledFaceDescriptors(pojo.label, descriptors);
} }
} }
\ No newline at end of file
...@@ -67,14 +67,18 @@ export class FaceMatcher { ...@@ -67,14 +67,18 @@ export class FaceMatcher {
: new FaceMatch('unknown', bestMatch.distance) : new FaceMatch('unknown', bestMatch.distance)
} }
public static toJSON(matcher: FaceMatcher): string {
return `{"distanceThreshold":${matcher.distanceThreshold},"labeledDescriptors":[${matcher.labeledDescriptors.map((ld) => LabeledFaceDescriptors.toJSON(ld))}]}`;
}
public static fromJSON(jsonString: string): FaceMatcher { public static fromJSON(jsonString: string): FaceMatcher {
return FaceMatcher.fromPOJO(JSON.parse(jsonString)); return FaceMatcher.fromPOJO(JSON.parse(jsonString));
} }
public static fromPOJO(pojo: any): FaceMatcher { public static fromPOJO(pojo: any): FaceMatcher {
const labeledDescriptors = pojo._labeledDescriptors const labeledDescriptors = pojo.labeledDescriptors
.map((ld: any) => LabeledFaceDescriptors.fromPOJO(ld)); .map((ld: any) => LabeledFaceDescriptors.fromPOJO(ld));
return new FaceMatcher(labeledDescriptors, pojo._distanceThreshold); return new FaceMatcher(labeledDescriptors, pojo.distanceThreshold);
} }
} }
\ No newline at end of file
...@@ -4,11 +4,15 @@ describe('globalApi', () => { ...@@ -4,11 +4,15 @@ describe('globalApi', () => {
describe('LabeledFaceDescriptors', () => { describe('LabeledFaceDescriptors', () => {
const json = '{"_label":"foo","_descriptors":[{"0":1,"1":2,"2":3},{"0":4,"1":5,"2":6}]}'; const json = '{"label":"foo","descriptors":[[1,2,3],[4,5,6]]}';
const l1 = 'foo'; const l1 = 'foo';
const f1 = new Float32Array([1, 2, 3]); const f1 = new Float32Array([1, 2, 3]);
const f2 = new Float32Array([4, 5, 6]); const f2 = new Float32Array([4, 5, 6]);
it('toJSON()', () => {
expect(LabeledFaceDescriptors.toJSON(new LabeledFaceDescriptors(l1, [f1,f2]))).toBe(json);
});
it('fromJSON()', () => { it('fromJSON()', () => {
const ld = LabeledFaceDescriptors.fromJSON(json); const ld = LabeledFaceDescriptors.fromJSON(json);
...@@ -27,8 +31,8 @@ describe('globalApi', () => { ...@@ -27,8 +31,8 @@ describe('globalApi', () => {
expect(ld.descriptors[1]).toEqual(f2); expect(ld.descriptors[1]).toEqual(f2);
}); });
it('JSON.stringify() => fromJSON()', () => { it('toJSON() => fromJSON()', () => {
const ld = LabeledFaceDescriptors.fromJSON(JSON.stringify(new LabeledFaceDescriptors(l1, [f1,f2]))); const ld = LabeledFaceDescriptors.fromJSON(LabeledFaceDescriptors.toJSON(new LabeledFaceDescriptors(l1, [f1,f2])));
expect(ld.label).toBe(l1); expect(ld.label).toBe(l1);
expect(ld.descriptors.length).toBe(2); expect(ld.descriptors.length).toBe(2);
......
...@@ -5,7 +5,7 @@ describe('globalApi', () => { ...@@ -5,7 +5,7 @@ describe('globalApi', () => {
describe('FaceMatcher', () => { describe('FaceMatcher', () => {
const json = '{"_distanceThreshold":123.321,"_labeledDescriptors":[{"_label":"foo","_descriptors":[{"0":1,"1":2,"2":3},{"0":4,"1":5,"2":6}]},{"_label":"bar","_descriptors":[{"0":7,"1":8,"2":9},{"0":3,"1":2,"2":1}]}]}'; const json = '{"distanceThreshold":123.321,"labeledDescriptors":[{"label":"foo","descriptors":[[1,2,3],[4,5,6]]},{"label":"bar","descriptors":[[7,8,9],[3,2,1]]}]}';
const dt = 123.321; const dt = 123.321;
const l1 = 'foo'; const l1 = 'foo';
const l2 = 'bar'; const l2 = 'bar';
...@@ -18,6 +18,10 @@ describe('globalApi', () => { ...@@ -18,6 +18,10 @@ describe('globalApi', () => {
new LabeledFaceDescriptors(l2, [f3, f4]) new LabeledFaceDescriptors(l2, [f3, f4])
]; ];
it('toJSON()', () => {
expect(FaceMatcher.toJSON(new FaceMatcher(lds, dt))).toBe(json);
});
it('fromJSON()', () => { it('fromJSON()', () => {
const fm = FaceMatcher.fromJSON(json); const fm = FaceMatcher.fromJSON(json);
...@@ -49,7 +53,7 @@ describe('globalApi', () => { ...@@ -49,7 +53,7 @@ describe('globalApi', () => {
}); });
it('JSON.stringify() => fromJSON()', () => { it('JSON.stringify() => fromJSON()', () => {
const fm = FaceMatcher.fromJSON(JSON.stringify(new FaceMatcher(lds, dt))); const fm = FaceMatcher.fromJSON(FaceMatcher.toJSON(new FaceMatcher(lds, dt)));
expect(fm.distanceThreshold).toBe(dt); expect(fm.distanceThreshold).toBe(dt);
expect(fm.labeledDescriptors.length).toBe(2); expect(fm.labeledDescriptors.length).toBe(2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment