V0.6.0 Apalone
This commit is contained in:
13
Tests/IoT-Simulator-CoreTests/DataAcquisition-Tests.swift
Normal file
13
Tests/IoT-Simulator-CoreTests/DataAcquisition-Tests.swift
Normal file
@@ -0,0 +1,13 @@
|
||||
import Testing
|
||||
|
||||
import Foundation
|
||||
import DataAcquisition
|
||||
|
||||
@testable import IoT_Simulator_Core
|
||||
|
||||
@Test func dataAcquisition() async throws {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
166
Tests/IoT-Simulator-CoreTests/Devices-Tests.swift
Normal file
166
Tests/IoT-Simulator-CoreTests/Devices-Tests.swift
Normal file
@@ -0,0 +1,166 @@
|
||||
import Testing
|
||||
import RandomCpp
|
||||
import Foundation
|
||||
import Crypto
|
||||
|
||||
@testable import IoT_Simulator_Core
|
||||
|
||||
@Test func idealSensor() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let sensor : Sensor = Sensor(id: 1, sensorType: .Temperature)
|
||||
let data = sensor.read(env)
|
||||
|
||||
|
||||
#expect(data.value == truth.value, "If values match, we are cool")
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test func faultyIdealSensor() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let sensor : Sensor = Sensor(id: 1, sensorType: .Temperature, faulty: true)
|
||||
let data = sensor.read(env)
|
||||
|
||||
|
||||
#expect(data.value != truth.value, "If these match, something is not working")
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test func realSensor() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let sensor : Sensor = RealSensor(sensorID: 1, sensorType: .Temperature, faulty: false, meanNoise: 0.5, stdNoise: 0.25, quantizationBits: 3)
|
||||
let data = sensor.read(env)
|
||||
|
||||
|
||||
#expect(data.value - truth.value < 10, "If these match, we are cool")
|
||||
|
||||
print(data.value)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test func faultyRealSensor() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let sensor : Sensor = RealSensor(sensorID: 1, sensorType: .Temperature, faulty: true, meanNoise: 0.5, stdNoise: 0.25, quantizationBits: 3)
|
||||
let data = sensor.read(env)
|
||||
|
||||
|
||||
#expect(data.value - truth.value > 10, "If these match, something is not working")
|
||||
|
||||
print(data.value)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test func edgeDevice() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let signKeyPath = "./Private/privateKey.pem"
|
||||
|
||||
let privateKey = try pem2key(filePath: signKeyPath)
|
||||
|
||||
let dev: EdgeDevice = EdgeDevice(
|
||||
deviceID: "EDG-001",
|
||||
dataType: .Temperature,
|
||||
disconnected: false,
|
||||
location: Location3D(20, 10, 0),
|
||||
dutyCicle: 100098,
|
||||
sensors: [
|
||||
0: Sensor(id: 0, sensorType: DataType.Temperature),
|
||||
1: Sensor(id: 0, sensorType: DataType.Temperature),
|
||||
2: Sensor(id: 0, sensorType: DataType.Temperature, faulty: true)
|
||||
],
|
||||
privateKey: privateKey
|
||||
)
|
||||
|
||||
let message = dev.work(envrionment: env)
|
||||
message.signMessage(key: dev.privateKey)
|
||||
|
||||
|
||||
#expect(message != nil, "If this is nil, I don't knwo what's going on")
|
||||
#expect(message.signature != nil, "If signature is nil, something is wrong")
|
||||
|
||||
print(message.description)
|
||||
print(message.signature)
|
||||
|
||||
#expect(
|
||||
try verifySignature(
|
||||
signature:message.signature,
|
||||
string: message.toDataCompatibleString(),
|
||||
key: dev.privateKey.publicKey
|
||||
),
|
||||
"Let's see that signatures match"
|
||||
)
|
||||
}
|
||||
|
||||
@Test func edgeDeviceMean() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
let signKeyPath = "./Private/privateKey.pem"
|
||||
|
||||
let privateKey = try pem2key(filePath: signKeyPath)
|
||||
|
||||
let dev: EdgeDevice = EdgeDevice(
|
||||
deviceID: "EDG-001",
|
||||
dataType: .Temperature,
|
||||
disconnected: false,
|
||||
location: Location3D(20, 10, 0),
|
||||
dutyCicle: 100098,
|
||||
sensors: [
|
||||
0: RealSensor(sensorID: 0, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3, quantizationBits: 3),
|
||||
1: RealSensor(sensorID: 1, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3, quantizationBits: 3),
|
||||
2: RealSensor(sensorID: 2, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3, quantizationBits: 3),
|
||||
],
|
||||
privateKey: privateKey
|
||||
)
|
||||
|
||||
let message = dev.work(envrionment: env)
|
||||
message.signMessage(key: dev.privateKey)
|
||||
|
||||
|
||||
#expect(message != nil, "If this is nil, I don't knwo what's going on")
|
||||
#expect(message.signature != nil, "If signature is nil, something is wrong")
|
||||
|
||||
print(message.description)
|
||||
print(message.signature)
|
||||
|
||||
#expect(
|
||||
try verifySignature(
|
||||
signature:message.signature,
|
||||
string: message.toDataCompatibleString(),
|
||||
key: dev.privateKey.publicKey
|
||||
),
|
||||
"Let's see that signatures match"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
65
Tests/IoT-Simulator-CoreTests/IoTCore-Tests.swift
Normal file
65
Tests/IoT-Simulator-CoreTests/IoTCore-Tests.swift
Normal file
@@ -0,0 +1,65 @@
|
||||
import DataAcquisition
|
||||
import Foundation
|
||||
import Testing
|
||||
|
||||
@testable import IoT_Simulator_Core
|
||||
|
||||
@Test func workLoop1() async throws {
|
||||
|
||||
let env = PhysicalEnvironment("Delta")
|
||||
let truth = PhysicalData(.Temperature, 22)
|
||||
|
||||
env.setPhysicalData(DataType.Temperature, truth)
|
||||
|
||||
IoTSimulatorCore.addEnv(environment: env)
|
||||
|
||||
let signKeyPath = "./Private/privateKey.pem"
|
||||
|
||||
let privateKey = try pem2key(filePath: signKeyPath)
|
||||
|
||||
let dev: EdgeDevice = EdgeDevice(
|
||||
deviceID: "EDG-001",
|
||||
dataType: .Temperature,
|
||||
disconnected: false,
|
||||
location: Location3D(20, 10, 0),
|
||||
dutyCicle: 3000,
|
||||
sensors: [
|
||||
0: RealSensor(
|
||||
sensorID: 0, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
1: RealSensor(
|
||||
sensorID: 1, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
2: RealSensor(
|
||||
sensorID: 2, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
],
|
||||
privateKey: privateKey
|
||||
)
|
||||
|
||||
let dev2: EdgeDevice = EdgeDevice(
|
||||
deviceID: "EDG-002",
|
||||
dataType: .Temperature,
|
||||
disconnected: false,
|
||||
location: Location3D(20, 10, 0),
|
||||
dutyCicle: 1000,
|
||||
sensors: [
|
||||
0: RealSensor(
|
||||
sensorID: 0, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
1: RealSensor(
|
||||
sensorID: 1, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
2: RealSensor(
|
||||
sensorID: 2, sensorType: .Temperature, faulty: false, meanNoise: 1, stdNoise: 3,
|
||||
quantizationBits: 3),
|
||||
],
|
||||
privateKey: privateKey
|
||||
)
|
||||
|
||||
try IoTSimulatorCore.addDevice(location: "Delta", device: dev)
|
||||
try IoTSimulatorCore.addDevice(location: "Delta", device: dev2)
|
||||
|
||||
sleep(15)
|
||||
|
||||
}
|
||||
@@ -55,9 +55,9 @@ import Crypto
|
||||
let signature = try sign(string: obj, key: key)
|
||||
let puKey = key.publicKey
|
||||
|
||||
let verify = try verify(signature: signature, string: obj, key: puKey)
|
||||
print(verify)
|
||||
assert(verify)
|
||||
let _verify = try verifySignature(signature: signature, string: obj, key: puKey)
|
||||
print(_verify)
|
||||
assert(_verify)
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user