Add test to QVariantMapToQVariantList.
This commit is contained in:
parent
a6a1e6ba71
commit
d4e971906e
|
@ -1,6 +1,7 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const QVariant = @import("../types/QVariant.zig").QVariant;
|
const QVariant = @import("../types/QVariant.zig").QVariant;
|
||||||
const range = @import("./RangeIter.zig").range;
|
const range = @import("./RangeIter.zig").range;
|
||||||
|
const freeQVariantList = @import("./free/freeQVariantList.zig").freeQVariantList;
|
||||||
|
|
||||||
pub fn QVariantMapToQVariantList(varMap: std.StringHashMap(QVariant), allocator: *std.mem.Allocator) ![]QVariant {
|
pub fn QVariantMapToQVariantList(varMap: std.StringHashMap(QVariant), allocator: *std.mem.Allocator) ![]QVariant {
|
||||||
var variantList = try allocator.alloc(QVariant, @intCast(usize, varMap.count() * 2));
|
var variantList = try allocator.alloc(QVariant, @intCast(usize, varMap.count() * 2));
|
||||||
|
@ -11,8 +12,30 @@ pub fn QVariantMapToQVariantList(varMap: std.StringHashMap(QVariant), allocator:
|
||||||
while (iter.next()) |i| {
|
while (iter.next()) |i| {
|
||||||
if (i % 2 == 1) continue;
|
if (i % 2 == 1) continue;
|
||||||
var item = varMapIter.next().?;
|
var item = varMapIter.next().?;
|
||||||
variantList[i] = QVariant{ .String = item.key };
|
variantList[i] = QVariant{ .String = item.key_ptr.* };
|
||||||
variantList[i + 1] = item.value;
|
variantList[i + 1] = item.value_ptr.*;
|
||||||
}
|
}
|
||||||
return variantList;
|
return variantList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test "QVariantMap -> QVariantList" {
|
||||||
|
var map = std.StringHashMap(QVariant).init(std.testing.allocator);
|
||||||
|
defer map.deinit();
|
||||||
|
|
||||||
|
// These will get free'd by freeQVariantList
|
||||||
|
var acabString = try std.testing.allocator.dupe(u8, "ACAB");
|
||||||
|
var owoString = try std.testing.allocator.dupe(u8, "owo");
|
||||||
|
|
||||||
|
try map.put(acabString, .{ .UInt = 1312 });
|
||||||
|
try map.put(owoString, .{ .Byte = 12 });
|
||||||
|
|
||||||
|
var list = try QVariantMapToQVariantList(map, std.testing.allocator);
|
||||||
|
defer freeQVariantList(list, std.testing.allocator);
|
||||||
|
|
||||||
|
try std.testing.expect(list.len == 4);
|
||||||
|
try std.testing.expectEqualStrings("ACAB", list[0].String);
|
||||||
|
try std.testing.expect(list[1].UInt == 1312);
|
||||||
|
try std.testing.expectEqualStrings("owo", list[2].String);
|
||||||
|
try std.testing.expect(list[3].Byte == 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ const freeQVariant = @import("./freeQVariant.zig").freeQVariant;
|
||||||
pub fn freeQVariantMap(qvariantmap: std.StringHashMap(QVariant), allocator: *std.mem.Allocator) void {
|
pub fn freeQVariantMap(qvariantmap: std.StringHashMap(QVariant), allocator: *std.mem.Allocator) void {
|
||||||
var qMapIter = qvariantmap.iterator();
|
var qMapIter = qvariantmap.iterator();
|
||||||
while (qMapIter.next()) |v| {
|
while (qMapIter.next()) |v| {
|
||||||
freeString(v.key, allocator);
|
freeString(v.key_ptr.*, allocator);
|
||||||
freeQVariant(v.value, allocator);
|
freeQVariant(v.value_ptr.*, allocator);
|
||||||
}
|
}
|
||||||
// Compiler bug maybe? doesnt want me to drop const so have to store it in a variable
|
// Compiler bug maybe? doesnt want me to drop const so have to store it in a variable
|
||||||
var qi = qvariantmap;
|
var qi = qvariantmap;
|
||||||
|
|
6
src/qtshit/utils/tests.zig
Normal file
6
src/qtshit/utils/tests.zig
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
const unicode = @import("./unicode.zig");
|
||||||
|
const QVariantMapToQVariantList = @import("./QVariantMapToQVariantList.zig");
|
||||||
|
|
||||||
|
comptime {
|
||||||
|
@import("std").testing.refAllDecls(@This());
|
||||||
|
}
|
|
@ -10,8 +10,8 @@ pub fn writeQVariantMap(writer: anytype, allocator: *std.mem.Allocator, map: std
|
||||||
|
|
||||||
var writeIterator = map.iterator();
|
var writeIterator = map.iterator();
|
||||||
while (writeIterator.next()) |entry| {
|
while (writeIterator.next()) |entry| {
|
||||||
try writeString(data.writer(), allocator, entry.key);
|
try writeString(data.writer(), allocator, entry.key_ptr.*);
|
||||||
try writeQVariant(data.writer(), allocator, entry.value);
|
try writeQVariant(data.writer(), allocator, entry.value_ptr.*);
|
||||||
}
|
}
|
||||||
|
|
||||||
try writeUInt(writer, map.count());
|
try writeUInt(writer, map.count());
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
const readTests = @import("qtshit/read/tests.zig");
|
const readTests = @import("qtshit/read/tests.zig");
|
||||||
const writeTests = @import("qtshit/write/tests.zig");
|
const writeTests = @import("qtshit/write/tests.zig");
|
||||||
const unicode = @import("qtshit/utils/unicode.zig");
|
const utilsTests = @import("qtshit/utils/tests.zig");
|
||||||
|
|
||||||
comptime {
|
comptime {
|
||||||
@import("std").testing.refAllDecls(@This());
|
@import("std").testing.refAllDecls(@This());
|
||||||
|
|
Loading…
Reference in a new issue