1#!/usr/bin/env python3
2#GI_TYPELIB_PATH=$PREFIX/lib/girepository-1.0/ ./array.py
3
4###############################################################################
5#
6# Copyright (C) 2015 William Yu <williamyu@gnome.org>
7#
8# This library is free software; you can redistribute it and/or modify
9# it under the terms of either:
10#
11#   The LGPL as published by the Free Software Foundation, version
12#   2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.txt
13#
14# Or:
15#
16#   The Mozilla Public License Version 2.0. You may obtain a copy of
17#   the License at https://www.mozilla.org/MPL/
18#
19###############################################################################
20
21import gi
22
23gi.require_version('ICalGLib', '3.0')
24
25from gi.repository import ICalGLib
26
27array = ICalGLib.Timezone.array_new();
28
29#TEST APPEND
30zone0 = ICalGLib.Timezone.get_builtin_timezone("Pacific/Midway");
31zone1 = ICalGLib.Timezone.get_builtin_timezone("America/Vancouver");
32zone2 = ICalGLib.Timezone.get_builtin_timezone("Atlantic/Bermuda");
33zone3 = ICalGLib.Timezone.get_builtin_timezone("Africa/Casablanca");
34zone4 = ICalGLib.Timezone.get_builtin_timezone("Asia/Irkutsk");
35
36ICalGLib.Timezone.array_append_from_vtimezone(array, zone0.get_component());
37ICalGLib.Timezone.array_append_from_vtimezone(array, zone1.get_component());
38ICalGLib.Timezone.array_append_from_vtimezone(array, zone2.get_component());
39ICalGLib.Timezone.array_append_from_vtimezone(array, zone3.get_component());
40ICalGLib.Timezone.array_append_from_vtimezone(array, zone4.get_component());
41
42assert array.size() == 5
43
44z0 = ICalGLib.Timezone.array_element_at(array, 0);
45assert(z0.get_location() == zone0.get_location());
46z1 = ICalGLib.Timezone.array_element_at(array, 1);
47assert(z1.get_location() == zone1.get_location());
48z2 = ICalGLib.Timezone.array_element_at(array, 2);
49assert(z2.get_location() == zone2.get_location());
50z3 = ICalGLib.Timezone.array_element_at(array, 3);
51assert(z3.get_location() == zone3.get_location());
52z4 = ICalGLib.Timezone.array_element_at(array, 4);
53assert(z4.get_location() == zone4.get_location());
54
55array2 = array.copy();
56
57assert array2.size() == 5
58
59z0 = ICalGLib.Timezone.array_element_at(array2, 0);
60assert(z0.get_location() == zone0.get_location());
61z1 = ICalGLib.Timezone.array_element_at(array2, 1);
62assert(z1.get_location() == zone1.get_location());
63z2 = ICalGLib.Timezone.array_element_at(array2, 2);
64assert(z2.get_location() == zone2.get_location());
65z3 = ICalGLib.Timezone.array_element_at(array2, 3);
66assert(z3.get_location() == zone3.get_location());
67z4 = ICalGLib.Timezone.array_element_at(array2, 4);
68assert(z4.get_location() == zone4.get_location());
69
70array.remove_element_at(2);
71assert array.size() == 4
72
73z0 = ICalGLib.Timezone.array_element_at(array, 0);
74assert(z0.get_location() == zone0.get_location());
75z1 = ICalGLib.Timezone.array_element_at(array, 1);
76assert(z1.get_location() == zone1.get_location());
77z3 = ICalGLib.Timezone.array_element_at(array, 2);
78assert(z3.get_location() == zone3.get_location());
79z4 = ICalGLib.Timezone.array_element_at(array, 3);
80assert(z4.get_location() == zone4.get_location());
81