onnxruntime/objectivec/test/test_utils.mm
Vrajang Parikh 960e320dff
Objective C Training API: TrainingSession (#16374)
### Description
- Implement Objective-C binding for `ORTTrainingSession`
- Add `ORTUtils` utility class to handle conversion between C++ and
Objective-C types
- Add test case for saving checkpoint
- Add unit test cases for `ORTTrainingSession`

### Motivation and Context
This PR is part of implementing Objective-C bindings for training API.
It implements objective-c binding for training session. The objective-C
API closely resembles the C++ API.

---------

Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
2023-06-28 09:13:56 -07:00

44 lines
1.5 KiB
Text

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#import "test_utils.h"
NS_ASSUME_NONNULL_BEGIN
namespace test_utils {
NSString* createTemporaryDirectory(XCTestCase* testCase) {
NSString* temporaryDirectory = NSTemporaryDirectory();
NSString* directoryPath = [temporaryDirectory stringByAppendingPathComponent:@"ort-objective-c-test"];
NSError* error = nil;
[[NSFileManager defaultManager] createDirectoryAtPath:directoryPath
withIntermediateDirectories:YES
attributes:nil
error:&error];
XCTAssertNil(error, @"Error creating temporary directory: %@", error.localizedDescription);
// add teardown block to delete the temporary directory
[testCase addTeardownBlock:^{
NSError* error = nil;
[[NSFileManager defaultManager] removeItemAtPath:directoryPath error:&error];
XCTAssertNil(error, @"Error removing temporary directory: %@", error.localizedDescription);
}];
return directoryPath;
}
NSArray<NSNumber*>* getFloatArrayFromData(NSData* data) {
NSMutableArray<NSNumber*>* array = [NSMutableArray array];
float value;
for (size_t i = 0; i < data.length / sizeof(float); ++i) {
[data getBytes:&value range:NSMakeRange(i * sizeof(float), sizeof(float))];
[array addObject:[NSNumber numberWithFloat:value]];
}
return array;
}
} // namespace test_utils
NS_ASSUME_NONNULL_END