import * as path from 'path'; import * as tf from '@tensorflow/tfjs'; import LearningMobilenetImage from './mobilenet'; import * as fs from 'fs'; const { createCanvas, loadImage } = require('canvas'); let imageTensor1: tf.Tensor3D; let imageTensor2: tf.Tensor3D; // 이미지경로를 기준으로 async function ImagePathToTensor(imagePath: string): Promise { const imageBuffer = fs.readFileSync(imagePath); const image = await loadImage(imageBuffer); const canvas = createCanvas(image.width, image.height); const ctx = canvas.getContext('2d'); ctx.drawImage(image, 0, 0); const imageData = ctx.getImageData(0, 0, image.width, image.height); return tf.tensor3d(imageData.data, [imageData.height, imageData.width, 4], 'int32'); } describe('LearningMobilenetImage', () => { const learning = new LearningMobilenetImage({}); const image1Path = path.join(__dirname, '../../public/images/image1.jpeg'); const image2Path = path.join(__dirname, '../../public/images/image2.jpeg'); console.log('Resolved path for image1:', image1Path); beforeAll(async () => { learning.init(); imageTensor1 = await ImagePathToTensor(image1Path); imageTensor2 = await ImagePathToTensor(image2Path); }); it('loads an image and converts it to a tensor', () => { expect(imageTensor1).toBeDefined(); expect(imageTensor1 instanceof tf.Tensor).toBe(true); expect(imageTensor2).toBeDefined(); expect(imageTensor2 instanceof tf.Tensor).toBe(true); }); // test('mobilenet add data', () => { // learning.addData("라벨1", imageTensor1); // learning.addData("라벨1", imageTensor1); // learning.addData("라벨2", imageTensor2); // learning.addData("라벨2", imageTensor2); // }); });